diff --git a/README.md b/README.md index 006508e..67f6319 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,42 @@ # webclient Web calendar in ELM + +## Query GraphQL + +```js +query day_planning($grs: [String], $to: DateTime!, $from: DateTime!, $hack2g2: Boolean!, $custom: Boolean!) { + planning(collection: CYBER, affiliationGroups: $grs, toDate: $to, fromDate: $from) { + ...events + } + hack2g2: planning(collection: HACK2G2, toDate: $to, fromDate: $from) @include(if: $hack2g2) { + ...events + } + custom: planning(collection: CUSTOM, toDate: $to, fromDate: $from) @include(if: $custom) { + ...events + } +} + +fragment events on Planning { + events { + title + eventId + startDate + endDate + classrooms + teachers + groups + } +} + +``` + +Variables +``` +{ + "from": "2018-11-12T12:00:00.000", + "to": "2018-12-12T12:00:00.000", + "grs": ["21"], + "hack2g2": true, + "custom": true +} +``` diff --git a/bower.json b/bower.json deleted file mode 100644 index b2dc2f9..0000000 --- a/bower.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "PlanningClient", - "homepage": "https://github.com/Hedroed/PlanningCYBER", - "authors": [ - "Hedroed " - ], - "description": "", - "main": "", - "license": "", - "private": true, - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ], - "dependencies": { - "normalize-css": "^7.0.0" - } -} diff --git a/bower_components/normalize-css/.bower.json b/bower_components/normalize-css/.bower.json deleted file mode 100644 index 27769a8..0000000 --- a/bower_components/normalize-css/.bower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "normalize-css", - "description": "A modern alternative to CSS resets", - "main": "normalize.css", - "license": "MIT", - "ignore": [ - "CHANGELOG.md", - "CONTRIBUTING.md", - "package.json", - "README.md", - "test.html" - ], - "homepage": "https://github.com/necolas/normalize.css", - "version": "7.0.0", - "_release": "7.0.0", - "_resolution": { - "type": "version", - "tag": "7.0.0", - "commit": "cd79468238394513cf481338c9dcb9aa8bd9b59c" - }, - "_source": "https://github.com/necolas/normalize.css.git", - "_target": "^7.0.0", - "_originalSource": "normalize-css" -} \ No newline at end of file diff --git a/bower_components/normalize-css/.editorconfig b/bower_components/normalize-css/.editorconfig deleted file mode 100644 index 4039ff1..0000000 --- a/bower_components/normalize-css/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false diff --git a/bower_components/normalize-css/.gitattributes b/bower_components/normalize-css/.gitattributes deleted file mode 100644 index 5e26201..0000000 --- a/bower_components/normalize-css/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -normalize.css linguist-vendored=false -test.html linguist-vendored diff --git a/bower_components/normalize-css/.gitignore b/bower_components/normalize-css/.gitignore deleted file mode 100644 index 3c3629e..0000000 --- a/bower_components/normalize-css/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/bower_components/normalize-css/.travis.yml b/bower_components/normalize-css/.travis.yml deleted file mode 100644 index 833d09d..0000000 --- a/bower_components/normalize-css/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - stable diff --git a/bower_components/normalize-css/LICENSE.md b/bower_components/normalize-css/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/bower_components/normalize-css/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/bower_components/normalize-css/bower.json b/bower_components/normalize-css/bower.json deleted file mode 100644 index a3f1f81..0000000 --- a/bower_components/normalize-css/bower.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "normalize-css", - "description": "A modern alternative to CSS resets", - "main": "normalize.css", - "license": "MIT", - "ignore": [ - "CHANGELOG.md", - "CONTRIBUTING.md", - "package.json", - "README.md", - "test.html" - ] -} diff --git a/bower_components/normalize-css/normalize.css b/bower_components/normalize-css/normalize.css deleted file mode 100644 index fa4e73d..0000000 --- a/bower_components/normalize-css/normalize.css +++ /dev/null @@ -1,447 +0,0 @@ -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in - * IE on Windows Phone and in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers (opinionated). - */ - -body { - margin: 0; -} - -/** - * Add the correct display in IE 9-. - */ - -article, -aside, -footer, -header, -nav, -section { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - * 1. Add the correct display in IE. - */ - -figcaption, -figure, -main { /* 1 */ - display: block; -} - -/** - * Add the correct margin in IE 8. - */ - -figure { - margin: 1em 40px; -} - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * 1. Remove the gray background on active links in IE 10. - * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. - */ - -a { - background-color: transparent; /* 1 */ - -webkit-text-decoration-skip: objects; /* 2 */ -} - -/** - * 1. Remove the bottom border in Chrome 57- and Firefox 39-. - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Prevent the duplicate application of `bolder` by the next rule in Safari 6. - */ - -b, -strong { - font-weight: inherit; -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font style in Android 4.3-. - */ - -dfn { - font-style: italic; -} - -/** - * Add the correct background and color in IE 9-. - */ - -mark { - background-color: #ff0; - color: #000; -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -audio, -video { - display: inline-block; -} - -/** - * Add the correct display in iOS 4-7. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Remove the border on images inside links in IE 10-. - */ - -img { - border-style: none; -} - -/** - * Hide the overflow in IE. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers (opinionated). - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: sans-serif; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` - * controls in Android 4. - * 2. Correct the inability to style clickable types in iOS and Safari. - */ - -button, -html [type="button"], /* 1 */ -[type="reset"], -[type="submit"] { - -webkit-appearance: button; /* 2 */ -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * 1. Add the correct display in IE 9-. - * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Remove the default vertical scrollbar in IE. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10-. - * 2. Remove the padding in IE 10-. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-cancel-button, -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in IE 9-. - * 1. Add the correct display in Edge, IE, and Firefox. - */ - -details, /* 1 */ -menu { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Scripting - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -canvas { - display: inline-block; -} - -/** - * Add the correct display in IE. - */ - -template { - display: none; -} - -/* Hidden - ========================================================================== */ - -/** - * Add the correct display in IE 10-. - */ - -[hidden] { - display: none; -} diff --git a/build/asset-manifest.json b/build/asset-manifest.json index 1e9d134..d5b8020 100644 --- a/build/asset-manifest.json +++ b/build/asset-manifest.json @@ -1,7 +1,7 @@ { - "main.css": "/static/css/main.c8f0e9c3.chunk.css", - "main.js": "/static/js/main.908a8069.chunk.js", - "vendors~main.js": "/static/js/vendors~main.f8b4eb45.chunk.js", - "runtime~main.js": "/static/js/runtime~main.004f827c.js", + "main.css": "/static/css/main.486d871d.chunk.css", + "main.js": "/static/js/main.ec1c84de.chunk.js", + "runtime~main.js": "/static/js/runtime~main.d53d57e4.js", + "vendors~main.js": "/static/js/vendors~main.3ca81432.chunk.js", "index.html": "/index.html" } \ No newline at end of file diff --git a/build/images/logo-192.png b/build/images/logo-192.png new file mode 100644 index 0000000..9eb1d6e Binary files /dev/null and b/build/images/logo-192.png differ diff --git a/build/images/logo-310.png b/build/images/logo-310.png new file mode 100644 index 0000000..29c729a Binary files /dev/null and b/build/images/logo-310.png differ diff --git a/build/images/logo-512.png b/build/images/logo-512.png new file mode 100644 index 0000000..56ac28b Binary files /dev/null and b/build/images/logo-512.png differ diff --git a/build/index.html b/build/index.html index 4b6412b..a231969 100644 --- a/build/index.html +++ b/build/index.html @@ -1 +1 @@ -Cyber Planning \ No newline at end of file +Cyber Planning \ No newline at end of file diff --git a/build/login.html b/build/login.html new file mode 100644 index 0000000..dfffe25 --- /dev/null +++ b/build/login.html @@ -0,0 +1,174 @@ + + + + + + + Cyberplanning + + + + + +
+
+

Cyber Planning

+
+ +
+ + + + \ No newline at end of file diff --git a/build/logo.gif b/build/logo.gif new file mode 100644 index 0000000..a251b09 Binary files /dev/null and b/build/logo.gif differ diff --git a/build/logo.min.gif b/build/logo.min.gif new file mode 100644 index 0000000..55453bc Binary files /dev/null and b/build/logo.min.gif differ diff --git a/build/logo.min.html b/build/logo.min.html new file mode 100644 index 0000000..7306356 --- /dev/null +++ b/build/logo.min.html @@ -0,0 +1,6882 @@ + + + + + + + + Logo ENSIBS + + + + + + + + + + + + \ No newline at end of file diff --git a/build/manifest.json b/build/manifest.json index 0a45f6a..17262a1 100644 --- a/build/manifest.json +++ b/build/manifest.json @@ -1,15 +1,22 @@ { "short_name": "Cyber Planning", - "name": "An awesome planning for cyber elite", + "name": "Cyber Planning - What I will learn today?", + "description": "An awesome planning for cyber elite", "icons": [ { - "src": "favicon.ico", - "sizes": "192x192", - "type": "image/png" + "src": "/images/logo-192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "/images/logo-512.png", + "type": "image/png", + "sizes": "512x512" } ], "start_url": "./index.html", + "scope": "/", "display": "standalone", - "theme_color": "#ecf0f1", + "theme_color": "#124368", "background_color": "#2d3436" } diff --git a/build/service-worker.js b/build/service-worker.js index fb85c9f..2eecfbd 100644 --- a/build/service-worker.js +++ b/build/service-worker.js @@ -1 +1 @@ -"use strict";var precacheConfig=[["/index.html","27b8fab4d1b2b6c4181b61f6a5bd02df"],["/static/css/main.c8f0e9c3.chunk.css","4fb8dd745ba63520c604e35fc3ba364b"],["/static/js/main.908a8069.chunk.js","2b2d51117e6f4c1ccc5b869835032b01"],["/static/js/runtime~main.004f827c.js","57b658191aa5070025b76b686a03a9e7"],["/static/js/vendors~main.f8b4eb45.chunk.js","77fca0b03137448809f278f6578f2aac"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,n){var t=new URL(e);return"/"===t.pathname.slice(-1)&&(t.pathname+=n),t.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(n){return new Response(n,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,n,t,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(n)+"="+encodeURIComponent(t)),a.toString()},isPathWhitelisted=function(e,n){if(0===e.length)return!0;var t=new URL(n).pathname;return e.some(function(e){return t.match(e)})},stripIgnoredUrlParameters=function(e,n){var t=new URL(e);return t.hash="",t.search=t.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return n.every(function(n){return!n.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),t.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var n=e[0],t=e[1],r=new URL(n,self.location),a=createCacheKey(r,hashParamName,t,/\.\w{8}\./);return[r.toString(),a]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(n){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(t){if(!n.has(t)){var r=new Request(t,{credentials:"same-origin"});return fetch(r).then(function(n){if(!n.ok)throw new Error("Request for "+t+" returned a response with status "+n.status);return cleanResponse(n).then(function(n){return e.put(t,n)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var n=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(t){return Promise.all(t.map(function(t){if(!n.has(t.url))return e.delete(t)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var n,t=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);(n=urlsToCacheKeys.has(t))||(t=addDirectoryIndex(t,"index.html"),n=urlsToCacheKeys.has(t));0,n&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(t)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(n){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,n),fetch(e.request)}))}}); \ No newline at end of file +"use strict";var precacheConfig=[["/index.html","ddc608974ef04e2f00808fe4640e1358"],["/static/css/main.486d871d.chunk.css","bc5c54be2974f42c518fa9ef0c373210"],["/static/js/main.ec1c84de.chunk.js","5dc211bb4ca028ff3742f7e82881422c"],["/static/js/runtime~main.d53d57e4.js","c9e5def540f83ce06d27307a61b7813b"],["/static/js/vendors~main.3ca81432.chunk.js","78f9f734747b0ff630319a54bcbca421"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,n){var t=new URL(e);return"/"===t.pathname.slice(-1)&&(t.pathname+=n),t.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(n){return new Response(n,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,n,t,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(n)+"="+encodeURIComponent(t)),a.toString()},isPathWhitelisted=function(e,n){if(0===e.length)return!0;var t=new URL(n).pathname;return e.some(function(e){return t.match(e)})},stripIgnoredUrlParameters=function(e,n){var t=new URL(e);return t.hash="",t.search=t.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return n.every(function(n){return!n.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),t.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var n=e[0],t=e[1],r=new URL(n,self.location),a=createCacheKey(r,hashParamName,t,/\.\w{8}\./);return[r.toString(),a]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(n){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(t){if(!n.has(t)){var r=new Request(t,{credentials:"same-origin"});return fetch(r).then(function(n){if(!n.ok)throw new Error("Request for "+t+" returned a response with status "+n.status);return cleanResponse(n).then(function(n){return e.put(t,n)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var n=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(t){return Promise.all(t.map(function(t){if(!n.has(t.url))return e.delete(t)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var n,t=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);(n=urlsToCacheKeys.has(t))||(t=addDirectoryIndex(t,"index.html"),n=urlsToCacheKeys.has(t));0,n&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(t)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(n){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,n),fetch(e.request)}))}}); \ No newline at end of file diff --git a/build/static/css/main.486d871d.chunk.css b/build/static/css/main.486d871d.chunk.css new file mode 100644 index 0000000..e3f6614 --- /dev/null +++ b/build/static/css/main.486d871d.chunk.css @@ -0,0 +1,9 @@ +@import url(https://fonts.googleapis.com/css?family=Roboto:400,500); +:root{--nav-color:#124368;--accent-color:#3c6382;--accent-color-dark:#345b7a;--background-color:#262d2f;--body-color:#2d3436;--border-color:#363e41;--text-color:#ecf0f1;--header-border-color:#122e42} +*{box-sizing:border-box}:root{font-size:16px}body,html{padding:0;margin:0;height:100vh;overflow:hidden}body{margin:0;text-align:center;background-color:var(--body-color)}a,body,button,input,select{font-family:Roboto,Helvetica,Arial,sans-serif;color:var(--text-color)}button{border:0;border-radius:0;background-color:transparent;cursor:pointer;padding:5px 15px}button:hover{background-color:var(--accent-color)}.hidden{display:none!important}.main--container{height:100%;display:flex;flex-direction:column;flex:1 1}.main--calendar{overflow:hidden;display:flex;flex:1 1;position:relative}.main--toolbar{display:flex;background-color:var(--nav-color);padding:0;justify-content:space-between;height:40px;position:relative}.main--month-title{display:flex;flex:1 1;justify-content:center;align-items:center}.main--month-title h2{font-size:1.3rem;margin:0;white-space:nowrap}.main--navigatiors-button{border:0;background-color:transparent;font-size:1rem;cursor:pointer;vertical-align:top}.main--navigatiors-button:hover{background-color:var(--accent-color)}button:focus,input:focus,option:focus,select:focus{outline-color:var(--accent-color)}.main--navigatiors-reload i{display:block;-webkit-transform-origin:center center;transform-origin:center center;-webkit-animation-name:none;animation-name:none;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}.main--navigatiors-reload.loop i{-webkit-animation-name:loop;animation-name:loop}.main--navigatiors-action{display:inline-flex;vertical-align:top;padding:5px 0 5px 5px;height:100%}.main--navigatiors-button{padding:0 .25rem;border-radius:50%}.main--navigatiors-today{padding:0 8px;text-transform:uppercase;font-weight:500;font-size:.9rem;background-color:var(--accent-color);border-radius:5px;vertical-align:top}.main--navigatiors-today:active{background-color:var(--accent-color-dark)}.main--paginators{z-index:1}.main--message{position:absolute;width:100%;height:100%;display:flex;justify-content:center;align-items:center}@-webkit-keyframes loop{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loop{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@media only screen and (max-width:550px){.main--month-title{position:relative}.main--month-title h2{font-size:1rem}.main--navigatiors-today{font-size:.8rem}} +.tooltip--event{position:absolute;font-size:.9rem;width:250px;color:var(--text-color);box-shadow:1px 1px 5px rgba(0,0,0,.7);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tooltip--event-title{font-size:1.3em;padding:5px}.tooltip--event-badge{font-weight:500;font-size:.7rem;padding:1px;border-radius:3px;margin-left:6px;vertical-align:baseline;background-color:var(--background-color)}.tooltip--event-hours{font-size:1.2em;font-style:italic}.tooltip--event-sub{background-color:var(--body-color);border-top:1px solid var(--border-color);color:var(--text-color)} +.calendar--calendar{display:flex;flex:1 1}.calendar--time-gutter{display:flex;flex-direction:column;background-color:var(--background-color)}.calendar--time-slot-group{min-height:30px;display:flex;flex-flow:column nowrap;flex:1 1;border-bottom:1px solid var(--border-color);border-left:1px solid var(--border-color)}.calendar--time-slot-text{font-size:12px}.calendar--week{flex:1 1;overflow-y:auto}.calendar--week-content{display:flex;overflow:hidden;min-height:100%}.calendar--dates{flex-flow:column nowrap;display:flex;align-content:stretch;justify-content:space-around;flex:1 1;min-width:0}.calendar--date-header{justify-content:center;display:flex;align-items:center;background-color:var(--accent-color);padding:2px 0;border-bottom:2px solid var(--header-border-color)}.calendar--date-header-weeknum{background-color:var(--accent-color-dark)}.calendar--date-header-zone{font-size:9px;padding:1px 0;border-bottom:1px solid var(--border-color)}.calendar--date-header-content{flex:1 1;display:flex;align-items:center;justify-content:center}.calendar--date{text-decoration:none;font-size:15px;line-height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar--day{display:flex;flex-flow:column nowrap;flex:1 1}.calendar--day-slot{flex:1 1;position:relative;display:flex;flex-direction:column}.calendar--day-content{display:flex;flex:1 1;overflow:auto}.calendar--hour-slot{padding:0 10px;flex:1 0}.calendar--event{font-size:.9rem;padding:.2em;background-color:var(--accent-color);color:#fff;cursor:pointer;overflow:hidden;border-bottom:1px solid var(--border-color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.calendar--event-title{font-weight:500;font-size:.9rem;max-height:2.4em;overflow:hidden}.calendar--event-sub{font-size:11px}.calendar--navigations-day,.calendar--navigations-week{border:0;padding:0 15px;background-color:transparent;height:100%;font-size:15px;cursor:pointer}.calendar--navigations-day:hover,.calendar--navigations-week:hover{font-weight:700}.calendar--jour-ferie{position:absolute;top:0;height:100%;background-color:#262d2f;width:100%;color:#657277;padding:100px 0} +.sidemenu--container{display:flex;flex-direction:column}.sidemenu--main{padding:15px;flex:1 1}.sidemenu--selector select{display:block;border:0;padding:2px;background-color:var(--accent-color);font-size:1rem;cursor:pointer;vertical-align:top}.sidemenu--footer{padding:3px 0}.sidemenu--footer i{padding-right:5px;cursor:pointer}.sidemenu--footer .icon-secure{color:green}.sidemenu--footer .icon-unsecure{color:#b42828} +.fun2 .calendar--event{background-color:#e30404!important;overflow:visible;-webkit-animation:4s singing infinite alternate linear;animation:4s singing infinite alternate linear}.fun2 .calendar--week{background-image:url("https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Communist_Party_of_Vietnam_flag_logo.svg/277px-Communist_Party_of_Vietnam_flag_logo.svg.png");background-repeat:no-repeat;background-position:50%;background-size:90vh}.fun2 .calendar--week-content .calendar--dates:nth-child(odd) .calendar--event{-webkit-animation-delay:1s;animation-delay:1s}.fun2 .calendar--week-content .calendar--dates:nth-child(2n) .calendar--event{-webkit-animation-delay:0;animation-delay:0}.fun2 .calendar--event:after{background-image:url("http://en.shapki-ushanki.ru/img/ushanka.png");width:100%;max-width:150px;height:100px;top:-80px}.fun2 .calendar--event:after,.fun2 .calendar--event:before{content:"";display:block;background-size:cover;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.fun2 .calendar--event:before{background-image:url("http://gifimage.net/wp-content/uploads/2017/08/mouth-gif-21.gif");width:50%;max-width:50px;height:50px;bottom:10%;mix-blend-mode:multiply}.fun .calendar--week-content .calendar--dates:nth-child(odd) .calendar--event:nth-child(odd){-webkit-animation:linear infinite 4s .6s fun alternate!important;animation:linear infinite 4s .6s fun alternate!important}.fun .calendar--week-content .calendar--dates:nth-child(odd) .calendar--event:nth-child(2n){-webkit-animation:linear infinite 4s .2s fun alternate!important;animation:linear infinite 4s .2s fun alternate!important}.fun .calendar--week-content .calendar--dates:nth-child(2n) .calendar--event:nth-child(odd){animation:linear infinite 4s fun alternate-reverse!important}.fun .calendar--week-content .calendar--dates:nth-child(2n) .calendar--event:nth-child(2n){animation:linear infinite 4s .5s fun alternate-reverse!important}.fun .main--navigatiors-reload i{animation:linear infinite 4s .3s fun alternate-reverse!important}.fun-help .calendar--event{transition:1s}@-webkit-keyframes fun{0%{-webkit-transform:rotate(0) scale(.8);transform:rotate(0) scale(.8)}50%{-webkit-transform:rotate(20deg) scale(1.2);transform:rotate(20deg) scale(1.2)}to{-webkit-transform:rotate(-2turn) scale(.8);transform:rotate(-2turn) scale(.8)}}@keyframes fun{0%{-webkit-transform:rotate(0) scale(.8);transform:rotate(0) scale(.8)}50%{-webkit-transform:rotate(20deg) scale(1.2);transform:rotate(20deg) scale(1.2)}to{-webkit-transform:rotate(-2turn) scale(.8);transform:rotate(-2turn) scale(.8)}}@-webkit-keyframes singing{0%{-webkit-transform:translatey(0) scale(1);transform:translatey(0) scale(1)}80%{-webkit-transform:translatey(-15px) scale(1.05) rotate(1deg);transform:translatey(-15px) scale(1.05) rotate(1deg)}to{-webkit-transform:translatey(-20px) scale(1.1) rotate(-1deg);transform:translatey(-20px) scale(1.1) rotate(-1deg)}}@keyframes singing{0%{-webkit-transform:translatey(0) scale(1);transform:translatey(0) scale(1)}80%{-webkit-transform:translatey(-15px) scale(1.05) rotate(1deg);transform:translatey(-15px) scale(1.05) rotate(1deg)}to{-webkit-transform:translatey(-20px) scale(1.1) rotate(-1deg);transform:translatey(-20px) scale(1.1) rotate(-1deg)}} +@font-face{font-family:cybericons;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:font/woff2;base64,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) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAA4wAA8AAAAAF/wAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABWAAAADsAAABUIIslek9TLzIAAAGUAAAAQwAAAFY+IFGWY21hcAAAAdgAAABzAAABzOLmlipjdnQgAAACTAAAABMAAAAgBtX/BGZwZ20AAAJgAAAFkAAAC3CKkZBZZ2FzcAAAB/AAAAAIAAAACAAAABBnbHlmAAAH+AAAA0AAAARqCm22EmhlYWQAAAs4AAAAMwAAADYTKyzHaGhlYQAAC2wAAAAfAAAAJAc7A1pobXR4AAALjAAAACAAAAAgGfH//WxvY2EAAAusAAAAEgAAABIEzwOUbWF4cAAAC8AAAAAgAAAAIADZC79uYW1lAAAL4AAAAYgAAALlOO+IOHBvc3QAAA1oAAAASgAAAGP3eiJEcHJlcAAADbQAAAB6AAAAhuVBK7x4nGNgZGBg4GIwYLBjYHJx8wlh4MtJLMljkGJgYYAAkDwymzEnMz2RgQPGA8qxgGkOIGaDiAIAJjsFSAB4nGNgZLZjnMDAysDAVMW0h4GBoQdCMz5gMGRkAooysDIzYAUBaa4pDA4vGD6cZA76n8UQxRzEMA0ozAiSAwDiyww8AHic7ZHBDYQwDATHEBIJ8aAQ3lcQ4nGtXid+0gGsE5dxK01WdpQ8doEFmMUhCtgXI3Rqa30/s/Z94aO5yo3Jl/v3POAMl0x3e/dJb4p+rjSNlb+2fl45tchtEBl7otzwJDrxJHrxJPryRPkq/QHtBU/0GnIAeJxjYEADEhDIHPQ/C4QBEmwD3QB4nK1WaXfTRhQdeUmchCwlCy1qYcTEabBGJmzBgAlBsmMgXZytlaCLFDvpvvGJ3+Bf82Tac+g3flrvGy8kkLTncJqTo3fnzdXM22USWpLYC+uRlJsvxdTWJo3sPAnphk3LUXwoO3shZYrJ3wVREK2W2rcdh0REIlC1rrBEEPseWZpkfOhRRsu2pFdNyi096S5b40G9Vd9+GjrKsTuhpGYzdGg9siVVGFWiSKY9UtKmZaj6K0krvL/CzFfNUMKITiJpvBnG0EjeG2e0ymg1tuMoimyy3ChSJJrhQRR5lNUS5+SKCQzKB82Q8sqnEeXD/Iis2KOcVrBLttP8vi95p3c5P7Ffb1G25EAfyI7s4Ox0JV+EW1th3LST7ShUEXbXd0Js2exU/2aP8ppGA7crMr3QjGCpfIUQKz+hzP4hWS2cT/mSR6NaspETQetlTuxLPoHW44gpcc0YWdDd0QkR1P2SMwz2mD4e/PHeKZYLEwJ4HMt6RyWcCBMpYXM0SdowcmAlZYsqqfWumDjldVrEW8J+7drRl85o41B3YjxbDx1bOVHJ8WhSp5lMndpJzaMpDaKUdCZ4zK8DKD+iSV5tYzWJlUfTOGbGhEQiAi3cS1NBLDuxpCkEzaMZvbkbprl2LVqkyQP13KP39OZWuLnTU9oO9LNGf1anYjrYC9PpaeQv8Wna5SJF6frpGX5M4kHWAjKRLTbDlIMHb/0O0svXlhyF1wbY7u3zK6h91kTwpAH7G9AeT9UpCUyFmFWIVkBirWtZlsnVrBapyNR3Q5pWvqzTBIpyHBfHvoxx/V8zM5aYEr7fidOzIy49c+1LCNMcfJt1PZrXqcVyAXFmeU6nWZbv6zTH8gOd5lme1+kIS1unoyw/1GmB5Uc6HWN5QQuadN/BkIsw5AIOkDCEpQNDWF6CISwVDGG5CENYFmEIyyUYwvJjGMJyGYawvKxl1dRTSePamVgGbEJgYo4eucxF5WoquVRCu2hUakOeEm6VVBTPqn9loF488oY5sBZIl8iaXzHOlY9G5fjWFS1vGjtXwLHqbx+O9jnxUtaLhT8F/9XWVCW9Ys3Dk6vwG4aebCeqNql4dE2Xz1U9uv5fVFRYC/QbSIVYKMqybHBnIoSPOp2GaqCVQ8xszDy063XLmp/D/TcxQhZQ/fg3FBoL3INOWUlZ7eCs1dfbstw7g3I4EyxJMTfz+lb4IiOz0n6RWcqej3wecAWMSmXYagOtFbzZJzEPmd4kzwRxW1E2SNrYzgSJDRzzgHnznQQmYeqqDeRO4YYN+AVhbsF5J1yieqMsh+5F7PMopPxbp+JE9qhojMCz2Rthr+9Cym9xDCQ0+aV+DFQVoakYNRXQNFJuqAZfxtm6bULGDvQjKnbDsqziw8cW95WSbRmEfKSI1aOjn9Zeok6q3H5mFJfvnb4FwSA1MX9733RxkMq7WskyR20DU7calVPXmkPjVYfq5lH1vePsEzlrmm66Jx56X9Oq28HFXCyw9m0O0lImF9T1YYUNosvFpVDqZTRJ77gHGBYY0O9Qio3/q/rYfJ4rVYXRcSTfTtS30edgDPwP2H9H9QPQ92Pocg0uz/eaE59u9OFsma6iF+un6Dcwa625WboG3NB0A+IhR62OuMoNfKcGcXqkuRzpIeBj3RXiAcAmgMXgE921jOZTAKP5jDk+wOfMYdBkDoMt5jDYZs4awA5zGOwyh8Eecxh8wZx1gC+ZwyBkDoOIOQyeMCcAeMocBl8xh8HXzGHwDXPuA3zLHAYxcxgkzGGwr+nWMMwtXtBdoLZBVaADU09Y3MPiUFNlyP6OF4b9vUHM/sEgpv6o6faQ+hMvDPVng5j6i0FM/VXTnSH1N14Y6u8GMfUPg5j6TL8Yy2UGv4x8lwoHlF1sPufvifcP28VAuQABAAH//wAPeJyNk89vG1UQx2fmvbduvO06jtdvBbSbxE7spG7SyvEPYRJ3FaVKCrYURZZIQBEBRQFcJ+QQlUq90StKKyuKIg6BILhwqEDAlSDBCXHIrf0XOHFuBWvmbV2pXBC7q6eZndn9ft7MPKBer9cWJ+ICnINRKAQTw4jgoEBaBAmAEjYAQRCKDSC6QDe9rJsaUuqlApam0XJ1HdG1MlfRymamqS598tyYp+le96zLD/pXau7p5t3l7gcBzXb2v9rvzOKN0zR+8n6XDn87sj4NP7t0OX16o95+8OX+Tk3Obx02726epoEvBOj9THtiAVyY+nEAAXHxjW/HllcD2wR32T+PN18JBtjBj/iDrbUfLg6R0oUBNEi5UnWAl+tYKXqoXWqH79kX7XXbxonwsW2vx/04Hsfxw/DdeHydIziJE88STOJz/aO+Pv4vfc+L9Em7CWbIGwaWHzby++EjnHymxP+3WdqPr8fpm/Bx+Cgy4/h5hBShmf33wt53Yk3YcA3mgtoUojJF4M4ANwjEdtQXugWKARRyg6SkFrdJroIk2cjnU/mxGUu9XMC0axUwk7uOuWzGIdenmWKlWsdh9DHmYMy0TswUtVetaLHmDj71Usnmym6t3ZiebrRr87cnZdJqKLJmH77z5he7SzK4c/T2ytHcUvIK/fLU0VODzSYn7nF+rWyhakrHen0ZF/aOHx7vLdRfXRpK8X6I6/mE7vF+YjAMl4O8EsTbQaBtht4BiShbICWu8txhI5sar6QGDX5qtFzKOeippGvFRjO5fLJU8WbKpUpRx9KM/T1eat1uIZ6N6L//8Hwc0cmD3w9piM2vO6+1aHnuJPxJ8/s0zusR7GwdHGx1/Ki/T3j2z8M4XAumpEFBgm0AU91bIMQOlxVVC5QyTAobqfFyNj32vKSxbCY3hwYtwvBexGPkOmpxop0xR6/cWcFyBNbnw4+7Zw8oeT/honbuR4gd3/sXpDkgTBIxvkW/QoJrdhWqQWkCpToHFA2CAimU3OA0MwnmqAK2eC5h1UxoI1fmO5qA8XSfjatWHS1qwX6+73t9P/uiz1Pw158RnkgmNP6Ht7kYmdGKg0sOhxPRis6io02AbfgHylDFqHicY2BkYGAA4qT4N8fi+W2+MnAzvwCKMNwQ+jILRv//9z+L+QWzC5DLwcAEEgUAkD0OnQB4nGNgZGBgDvqfBSRf/P/3/z/zCwagCArgAAC2iweaAAPoAAADoP//AsoAAALKAAADWf/+AoIAAAOgAAADWQAAAAAAAABOAI4AzgE2AX4B0AI1AAAAAQAAAAgAMQADAAAAAAACAAwAHABzAAAATgtwAAAAAHicdZLNSsNAFEa/qW3FFlyo6HZWohTSHxBqNxYK7UqQLrpwl8ZpkpJmymRayTP4Br6DryT4Jn5NBqtQEzI598zNnTtDAJzhEwLldcenZIEGo5IrOMaD4yP6seMq+clxDU08O67TK8cNtKAdN3GOd1YQ1RNGS3w4FrgQV44rOBUtx0f0946r5EfHNVwK33Gd/tVxAzPx5riJa/E10uvcxGFk5c3oVvY63b6c51JTxamfSH9jI20yOZQLnVqVJNoL9CrI58rEgU6zqQo3iW/2Yk8zZbJYp7LrdfZyolJlfKtedqtk27Bn7UIujF7Jsasv10YvVWC9yNr1oN3+vS5GPKg1chjECBHBQuKG9pbvHjrook+aM0Mys8yKkcJHQuNjwy+iYiZjPOSzYJTSKmYkZA8BxxXHnHVUUSMocjJMGYeskbCSOZhxyM2KOKPZxZI9euz0UOaEcVo4v+jo5WcvGbZcuUdr2fGua1N0Kfmj/e1f8nx2c0uagN4rTsnSDtDm/c9+vwHo7IuPeJxtydEKgCAMRuH9Nm31lmIrAzNY+v4F3vZdHTjkaFjpn8BhAsMjYIZgofBotJS9nUduXHRvwbTccftG6qbS6wi+tHaiF6xtEMwAAHicY/DewXAiKGIjI2Nf5AbGnRwMHAzJBRsZWJ02MTAyaIEYm7mYGDkgLD4GMIvNaRfTAaA0J5DN7rSLwQHCZmZw2ajC2BEYscGhI2Ijc4rLRjUQbxdHAwMji0NHckgESEkkEGzmYWLk0drB+L91A0vvRiYGFwAMdiP0AAA=) format("woff"),url(data:font/ttf;base64,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QGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=) format("truetype");font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:cybericons;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-search:before{content:"\E800"}.icon-right:before{content:"\E801"}.icon-left:before{content:"\E802";-webkit-transform:translateX(-2px);transform:translateX(-2px)}.icon-reload:before{content:"\E803"}.icon-secure:before{content:"\E804"}.icon-unsecure:before{content:"\E805"}.icon-menu:before{content:"\F0C9"} +.md-checkbox{position:relative;margin:1em 0;text-align:left}.md-checkbox.md-checkbox-inline{display:inline-block}.md-checkbox label{cursor:pointer;display:inline;line-height:1.25em;vertical-align:top;clear:both;padding-left:1px;box-sizing:border-box}.md-checkbox label:not(:empty){padding-left:.75em}.md-checkbox label:after,.md-checkbox label:before{content:"";position:absolute;left:0;top:0;box-sizing:border-box}.md-checkbox label:before{width:1.25em;height:1.25em;background:var(--text-color);border:2px solid var(--border-color);border-radius:.125em;cursor:pointer;transition:background .3s}.md-checkbox input[type=checkbox]{opacity:0;width:1.25em;margin:0;display:block;float:left;font-size:inherit}.md-checkbox input[type=checkbox]:checked+label:before{background:var(--accent-color);border:none}.md-checkbox input[type=checkbox]:checked+label:after{-webkit-transform:translate(.25em,.3365384615em) rotate(-45deg);transform:translate(.25em,.3365384615em) rotate(-45deg);width:.75em;height:.375em;border:.125em solid var(--text-color);border-top-style:none;border-right-style:none}.md-checkbox input[type=checkbox]:disabled+label:before{border-color:rgba(0,0,0,.26)}.md-checkbox input[type=checkbox]:disabled:checked+label:before{background:rgba(0,0,0,.26)} diff --git a/build/static/css/main.c8f0e9c3.chunk.css b/build/static/css/main.c8f0e9c3.chunk.css deleted file mode 100644 index 8ab8339..0000000 --- a/build/static/css/main.c8f0e9c3.chunk.css +++ /dev/null @@ -1,6 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Montserrat); -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none} -*{box-sizing:border-box}body,html{padding:0;margin:0;height:100vh;overflow:hidden}body{font-family:Montserrat,sans-serif;font-size:20px;margin:0;text-align:center;background-color:#2d3436;color:#ecf0f1}.hidden{display:none!important}.main--container{height:100%;display:flex;flex-direction:column;flex:1 1}.main--calendar{overflow:hidden;display:flex;flex:1 1;position:relative}.main--toolbar{display:flex;background-color:#124368;padding:0;justify-content:space-between;height:40px;position:relative}.main--month-title{cursor:pointer;position:absolute;width:100%;height:100%}.main--month-title h2{margin:0;padding:5px 0;font-size:22px;white-space:nowrap}.main--navigatiors-button,.main--selector-select{height:100%;border:0;background-color:transparent;color:#ecf0f1;font-size:15px;cursor:pointer;vertical-align:top}.main--navigatiors-button:hover,.main--selector-select:hover{background-color:#34495e}.main--navigatiors-reload{font-size:1.2em;line-height:100%}.main--navigatiors-reload span{display:block;padding-left:4px;-webkit-transform-origin:center center;transform-origin:center center;-webkit-animation-name:none;animation-name:none;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}.main--navigatiors-reload.loop span{-webkit-animation-name:loop;animation-name:loop}.main--navigatiors-button{padding:0 8px;text-transform:uppercase}.main--paginators,.main--selector{z-index:1}.main--selector-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 5px}.main--message{position:absolute;width:100%;height:100%;display:flex;justify-content:center;align-items:center}@-webkit-keyframes loop{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loop{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} -.tooltip--event{position:absolute;font-size:15px;width:70%;max-width:250px;bottom:0;border-radius:5px;color:#fff;border:1px solid #000}.tooltip--event-title{font-size:1.3em;border-bottom:1px solid #000;padding:5px}.tooltip--event-hours{font-size:1.2em;font-style:italic}.tooltip--event-sub{background-color:#373c3d;border-top:1px solid #404547;color:#fff}.tooltip--event-sub:first-child(){border:0} -.calendar--calendar{display:flex;flex:1 1}.calendar--time-gutter{display:flex;flex-direction:column}.calendar--dates-header>.calendar--time-gutter{width:51px}.calendar--time-slot-group{min-height:30px;display:flex;flex-flow:column nowrap;flex:1 1;border-bottom:1px solid #363e41;border-left:1px solid #363e41}.calendar--time-slot-text{font-size:12px;color:#ecf0f1}.calendar--week{display:flex;flex-flow:column nowrap;flex:1 1}.calendar--week-content{display:flex;overflow-x:hidden;flex:1 1}.calendar--day .calendar--date-header,.calendar--week-header{background-color:#3c6382;padding:2px 0;border-bottom:2px solid #122e42}.calendar--dates-header{display:flex;flex-flow:row nowrap;align-content:stretch}.calendar--dates{flex-flow:row nowrap;display:flex;align-content:stretch;justify-content:space-around;flex:1 1}.calendar--date-header{padding:0;text-align:center;display:flex;align-items:center}.calendar--date-header-content{flex:1 1;display:flex;align-items:center;justify-content:center}.calendar--date{text-decoration:none;color:#ecf0f1;font-size:15px;line-height:26px}.calendar--day{display:flex;flex-flow:column nowrap;flex:1 1}.calendar--day-slot{flex:1 1;position:relative;display:flex;flex-direction:column}.calendar--day-content{display:flex;flex:1 1;overflow:auto}.calendar--hour-slot{padding:0 10px;flex:1 0;background-color:#262d2f}.calendar--event{font-size:14px;padding:5px;background-color:#5fb4ca;color:#fff;cursor:pointer;overflow:hidden;border-bottom:1px solid #2d3436}.fun-help .calendar--event{transition:1s}.calendar--event-title{font-weight:700;height:2em;line-height:1em;overflow:hidden}.calendar--event-sub{font-size:11px}.calendar--navigations-day,.calendar--navigations-week{border:0;padding:0 15px;background-color:transparent;height:100%;color:#ecf0f1;font-size:15px;cursor:pointer}.calendar--navigations-day:hover,.calendar--navigations-week:hover{font-weight:700}.calendar--jour-ferie{position:absolute;top:0;height:100%;background-color:#262d2f;width:100%;color:#657277;padding:100px 0} -.fun2 .calendar--event{background-color:#e30404!important;overflow:visible;-webkit-animation:4s singing infinite alternate linear;animation:4s singing infinite alternate linear}.fun2 .calendar--week{background-image:url("https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Communist_Party_of_Vietnam_flag_logo.svg/277px-Communist_Party_of_Vietnam_flag_logo.svg.png");background-repeat:no-repeat;background-position:50%;background-size:90vh}.fun2 .calendar--week-content .calendar--day:nth-child(odd) .calendar--event{-webkit-animation-delay:1s;animation-delay:1s}.fun2 .calendar--week-content .calendar--day:nth-child(2n) .calendar--event{-webkit-animation-delay:0;animation-delay:0}.fun2 .calendar--event:after{background-image:url("http://en.shapki-ushanki.ru/img/ushanka.png");width:100%;max-width:150px;height:100px;top:-80px}.fun2 .calendar--event:after,.fun2 .calendar--event:before{content:"";display:block;background-size:cover;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.fun2 .calendar--event:before{background-image:url("http://gifimage.net/wp-content/uploads/2017/08/mouth-gif-21.gif");width:50%;max-width:50px;height:50px;bottom:10%;mix-blend-mode:multiply}.fun .calendar--week-content .calendar--day:nth-child(odd) .calendar--event:nth-child(odd){-webkit-animation:linear infinite 4s .6s fun alternate!important;animation:linear infinite 4s .6s fun alternate!important}.fun .calendar--week-content .calendar--day:nth-child(odd) .calendar--event:nth-child(2n){-webkit-animation:linear infinite 4s .2s fun alternate!important;animation:linear infinite 4s .2s fun alternate!important}.fun .calendar--week-content .calendar--day:nth-child(2n) .calendar--event:nth-child(odd){animation:linear infinite 4s fun alternate-reverse!important}.fun .calendar--week-content .calendar--day:nth-child(2n) .calendar--event:nth-child(2n){animation:linear infinite 4s .5s fun alternate-reverse!important}.fun .main--navigatiors-reload span{animation:linear infinite 4s .3s fun alternate-reverse!important}@-webkit-keyframes fun{0%{-webkit-transform:rotate(0) scale(.8);transform:rotate(0) scale(.8)}50%{-webkit-transform:rotate(20deg) scale(1.2);transform:rotate(20deg) scale(1.2)}to{-webkit-transform:rotate(-2turn) scale(.8);transform:rotate(-2turn) scale(.8)}}@keyframes fun{0%{-webkit-transform:rotate(0) scale(.8);transform:rotate(0) scale(.8)}50%{-webkit-transform:rotate(20deg) scale(1.2);transform:rotate(20deg) scale(1.2)}to{-webkit-transform:rotate(-2turn) scale(.8);transform:rotate(-2turn) scale(.8)}}@-webkit-keyframes singing{0%{-webkit-transform:translatey(0) scale(1);transform:translatey(0) scale(1)}80%{-webkit-transform:translatey(-15px) scale(1.05) rotate(1deg);transform:translatey(-15px) scale(1.05) rotate(1deg)}to{-webkit-transform:translatey(-20px) scale(1.1) rotate(-1deg);transform:translatey(-20px) scale(1.1) rotate(-1deg)}}@keyframes singing{0%{-webkit-transform:translatey(0) scale(1);transform:translatey(0) scale(1)}80%{-webkit-transform:translatey(-15px) scale(1.05) rotate(1deg);transform:translatey(-15px) scale(1.05) rotate(1deg)}to{-webkit-transform:translatey(-20px) scale(1.1) rotate(-1deg);transform:translatey(-20px) scale(1.1) rotate(-1deg)}}@media only screen and (max-width:430px){.main--month-title h2{font-size:16px;line-height:30px}.main--navigatiors-reload{padding-left:0}} diff --git a/build/static/js/main.908a8069.chunk.js b/build/static/js/main.908a8069.chunk.js deleted file mode 100644 index 4f33ac1..0000000 --- a/build/static/js/main.908a8069.chunk.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,function(n,r){!function(n){"use strict";function r(n,r,t){return t.a=n,t.f=r,t}function t(n){return r(2,n,function(r){return function(t){return n(r,t)}})}function e(n){return r(3,n,function(r){return function(t){return function(e){return n(r,t,e)}}})}function u(n){return r(4,n,function(r){return function(t){return function(e){return function(u){return n(r,t,e,u)}}}})}function a(n){return r(5,n,function(r){return function(t){return function(e){return function(u){return function(a){return n(r,t,e,u,a)}}}}})}function c(n){return r(6,n,function(r){return function(t){return function(e){return function(u){return function(a){return function(c){return n(r,t,e,u,a,c)}}}}}})}function i(n){return r(7,n,function(r){return function(t){return function(e){return function(u){return function(a){return function(c){return function(i){return n(r,t,e,u,a,c,i)}}}}}}})}function o(n){return r(8,n,function(r){return function(t){return function(e){return function(u){return function(a){return function(c){return function(i){return function(o){return n(r,t,e,u,a,c,i,o)}}}}}}}})}function f(n){return r(9,n,function(r){return function(t){return function(e){return function(u){return function(a){return function(c){return function(i){return function(o){return function(f){return n(r,t,e,u,a,c,i,o,f)}}}}}}}}})}function b(n,r,t){return 2===n.a?n.f(r,t):n(r)(t)}function s(n,r,t,e){return 3===n.a?n.f(r,t,e):n(r)(t)(e)}function v(n,r,t,e,u){return 4===n.a?n.f(r,t,e,u):n(r)(t)(e)(u)}function d(n,r,t,e,u,a){return 5===n.a?n.f(r,t,e,u,a):n(r)(t)(e)(u)(a)}function l(n,r,t,e,u,a,c){return 6===n.a?n.f(r,t,e,u,a,c):n(r)(t)(e)(u)(a)(c)}function h(n,r,t,e,u,a,c,i){return 7===n.a?n.f(r,t,e,u,a,c,i):n(r)(t)(e)(u)(a)(c)(i)}function $(n,r,t,e,u,a,c,i,o){return 8===n.a?n.f(r,t,e,u,a,c,i,o):n(r)(t)(e)(u)(a)(c)(i)(o)}var g=e(function(n,r,t){for(var e=new Array(n),u=0;u=0;e--)r=b(n,t[e],r);return r})),A=(t(function(n,r){for(var t=r.length,e=new Array(t),u=0;ut.length&&(u=t.length);for(var a=new Array(e+u),c=0;c"),r});function L(n){throw new Error("https://github.com/elm/core/blob/1.0.0/hints/"+n+".md")}function E(n,r){for(var t,e=[],u=S(n,r,0,e);u&&(t=e.pop());u=S(t.a,t.b,0,e));return u}function S(n,r,t,e){if(t>100)return e.push(N(n,r)),!0;if(n===r)return!0;if("object"!==typeof n||null===n||null===r)return"function"===typeof n&&L(5),!1;for(var u in n.$<0&&(n=vt(n),r=vt(r)),n)if(!S(n[u],r[u],t+1,e))return!1;return!0}var O=t(E);t(function(n,r){return!E(n,r)});function _(n,r,t){if("object"!==typeof n)return n===r?0:n0}),t(function(n,r){return _(n,r)>=0});var D=t(function(n,r){var t=_(n,r);return t<0?it:t?bt:ct}),I=0;function N(n,r){return{a:n,b:r}}function M(n,r,t){return{a:n,b:r,c:t}}function q(n){return n}function J(n,r){var t={};for(var e in n)t[e]=n[e];for(var e in r)t[e]=r[e];return t}t(G);function G(n,r){if("string"===typeof n)return n+r;if(!n.b)return r;var t=C(n.a,r);n=n.b;for(var e=t;n.b;n=n.b)e=e.b=C(n.a,r);return t}t(function(n,r){return n+r}),t(function(n,r){return n-r}),t(function(n,r){return n*r}),t(function(n,r){return n/r}),t(function(n,r){return n/r|0});var F=t(Math.pow),B=(t(function(n,r){return r%n}),t(function(n,r){var t=r%n;return 0===n?L(11):t>0&&n<0||t<0&&n>0?t+n:t})),R=Math.PI;Math.E,Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,t(Math.atan2);var P=Math.ceil,Y=Math.floor,H=Math.round,W=(Math.sqrt,Math.log);isNaN;t(function(n,r){return n&&r}),t(function(n,r){return n||r}),t(function(n,r){return n!==r});function Z(n){return{$:0,a:n}}function V(n){return{$:1,a:n}}function z(n){return{$:2,b:n,c:null}}var U=t(function(n,r){return{$:3,b:n,d:r}}),Q=t(function(n,r){return{$:4,b:n,d:r}});var K=0;function X(n){var r={$:0,e:K++,f:n,g:null,h:[]};return an(r),r}function nn(n){return z(function(r){r(Z(X(n)))})}function rn(n,r){n.h.push(r),an(n)}var tn=t(function(n,r){return z(function(t){rn(n,r),t(Z(I))})});var en=!1,un=[];function an(n){if(un.push(n),!en){for(en=!0;n=un.shift();)cn(n);en=!1}}function cn(n){for(;n.f;){var r=n.f.$;if(0===r||1===r){for(;n.g&&n.g.$!==r;)n.g=n.g.i;if(!n.g)return;n.f=n.g.b(n.f.a),n.g=n.g.i}else{if(2===r)return void(n.f.c=n.f.b(function(r){n.f=r,an(n)}));if(5===r){if(0===n.h.length)return;n.f=n.f.b(n.h.shift())}else n.g={$:3===r?0:1,b:n.f.b,i:n.g},n.f=n.f.d}}}var on=t(function(n,r){return n+r});t(function(n,r){return n+r});t(function(n,r){for(var t=r.length,e=new Array(t),u=0;u-1}),$n=t(function(n,r){return 0===r.indexOf(n)}),gn=(t(function(n,r){return r.length>=n.length&&r.lastIndexOf(n)===r.length-n.length}),t(function(n,r){var t=n.length;if(t<1)return A;for(var e=0,u=[];(e=r.indexOf(n,e))>-1;)u.push(e),e+=t;return j(u)}));function pn(n){return n+""}var mn=t(function(n,r){return{$:10,d:n,b:r}});t(function(n,r){return{$:11,e:n,b:r}});function yn(n,r){return{$:13,f:n,g:r}}t(function(n,r){return{$:14,b:r,h:n}});var wn=t(function(n,r){return yn(n,[r])}),An=e(function(n,r,t){return yn(n,[r,t])}),Cn=(u(function(n,r,t,e){return yn(n,[r,t,e])}),a(function(n,r,t,e,u){return yn(n,[r,t,e,u])}),c(function(n,r,t,e,u,a){return yn(n,[r,t,e,u,a])}),i(function(n,r,t,e,u,a,c){return yn(n,[r,t,e,u,a,c])}),o(function(n,r,t,e,u,a,c,i){return yn(n,[r,t,e,u,a,c,i])})),Tn=(f(function(n,r,t,e,u,a,c,i,o){return yn(n,[r,t,e,u,a,c,i,o])}),t(function(n,r){try{return xn(n,JSON.parse(r))}catch(n){return uu(b(cu,"This is not valid JSON! "+n.message,Dn(r)))}})),jn=t(function(n,r){return xn(n,In(r))});function xn(n,r){switch(n.$){case 3:return"boolean"===typeof r?au(r):En("a BOOL",r);case 2:return"number"!==typeof r?En("an INT",r):-2147483647=r.length)return En("a LONGER array. Need index "+u+" but only see "+r.length+" entries",r);e=xn(n.b,r[u]);return He(e)?e:uu(b(ou,u,e.a));case 12:if("object"!==typeof r||null===r||Array.isArray(r))return En("an OBJECT",r);var a=A;for(var c in r)if(r.hasOwnProperty(c)){e=xn(n.b,r[c]);if(!He(e))return uu(b(iu,c,e.a));a=C(N(c,e.a),a)}return au(Ee(a));case 13:for(var i=n.f,o=n.g,f=0;f=0&&r.splice(t,1)}}}function Kn(n,r){return Vn(n),Gn[n]={f:nr,r,a:rr},Yn(n)}var Xn,nr=t(function(n,r){return function(t){return n(r(t))}});function rr(n,r){var t=A,u=Gn[n].r,a=Z(null);return Gn[n].b=a,Gn[n].c=e(function(n,r,e){return t=r,a}),{send:function(n){var e=b(jn,u,Dn(n));He(e)||L(4,e.a);for(var a=e.a,c=t;c.b;c=c.b)r(c.a(a))}}}var tr="undefined"!==typeof document?document:{};function er(n,r){n.appendChild(r)}u(function(n,r,t,e){var u=e.node;return u.parentNode.replaceChild(pr(n,function(){}),u),{}});function ur(n){return{$:0,a:n}}var ar=t(function(n,r){return t(function(t,e){for(var u=[],a=0;e.b;e=e.b){var c=e.a;a+=c.b||0,u.push(c)}return a+=u.length,{$:1,c:r,d:$r(t),e:u,f:n,b:a}})})(void 0);t(function(n,r){return t(function(t,e){for(var u=[],a=0;e.b;e=e.b){var c=e.a;a+=c.b.b||0,u.push(c)}return a+=u.length,{$:2,c:r,d:$r(t),e:u,f:n,b:a}})})(void 0);var cr=t(function(n,r){return{$:4,j:n,k:r,b:1+(r.b||0)}});function ir(n,r){return{$:5,l:n,m:r,k:void 0}}t(function(n,r){return ir([n,r],function(){return n(r)})}),e(function(n,r,t){return ir([n,r,t],function(){return b(n,r,t)})}),u(function(n,r,t,e){return ir([n,r,t,e],function(){return s(n,r,t,e)})}),a(function(n,r,t,e,u){return ir([n,r,t,e,u],function(){return v(n,r,t,e,u)})}),c(function(n,r,t,e,u,a){return ir([n,r,t,e,u,a],function(){return d(n,r,t,e,u,a)})}),i(function(n,r,t,e,u,a,c){return ir([n,r,t,e,u,a,c],function(){return l(n,r,t,e,u,a,c)})}),o(function(n,r,t,e,u,a,c,i){return ir([n,r,t,e,u,a,c,i],function(){return h(n,r,t,e,u,a,c,i)})}),f(function(n,r,t,e,u,a,c,i,o){return ir([n,r,t,e,u,a,c,i,o],function(){return $(n,r,t,e,u,a,c,i,o)})});var or=t(function(n,r){return{$:"a0",n,o:r}}),fr=t(function(n,r){return{$:"a1",n,o:r}}),br=t(function(n,r){return{$:"a2",n,o:r}}),sr=t(function(n,r){return{$:"a3",n,o:r}});e(function(n,r,t){return{$:"a4",n:r,o:{f:n,o:t}}});function vr(n){return/^\s*(javascript:|data:text\/html)/i.test(n)?"":n}t(function(n,r){return"a0"===r.$?b(or,r.n,function(n,r){var t=Bu(r);return{$:r.$,a:t?s(Gu,t<3?lr:hr,Fu(n),r.a):b(Ju,n,r.a)}}(n,r.o)):r});var dr,lr=t(function(n,r){return N(n(r.a),r.b)}),hr=t(function(n,r){return{q:n(r.q),aF:r.aF,aE:r.aE}});function $r(n){for(var r={};n.b;n=n.b){var t=n.a,e=t.$,u=t.n,a=t.o;if("a2"!==e){var c=r[e]||(r[e]={});"a3"===e&&"class"===u?gr(c,u,a):c[u]=a}else"className"===u?gr(r,u,In(a)):r[u]=In(a)}return r}function gr(n,r,t){var e=n[r];n[r]=e?e+" "+t:t}function pr(n,r){var t=n.$;if(5===t)return pr(n.k||(n.k=n.m()),r);if(0===t)return tr.createTextNode(n.a);if(4===t){for(var e=n.k,u=n.j;4===e.$;)"object"!==typeof u?u=[u,e.j]:u.push(e.j),e=e.k;var a={j:u,p:r};return(c=pr(e,a)).elm_event_node_ref=a,c}if(3===t)return mr(c=n.h(n.g),r,n.d),c;var c=n.f?tr.createElementNS(n.f,n.c):tr.createElement(n.c);Xn&&"a"==n.c&&c.addEventListener("click",Xn(c)),mr(c,r,n.d);for(var i=n.e,o=0;o0&&kr(t,1,e,b));case 4:for(var s=n.j,v=r.j,d=!1,l=n.k;4===l.$;)d=!0,"object"!==typeof s?s=[s,l.j]:s.push(l.j),l=l.k;for(var h=r.k;4===h.$;)d=!0,"object"!==typeof v?v=[v,h.j]:v.push(h.j),h=h.k;return d&&s.length!==v.length?void kr(t,0,e,r):((d?function(n,r){for(var t=0;ti?kr(t,6,e,{v:i,i:c-i}):c0||c.length>0||L)&&kr(t,8,e,{w:u,x:c,y:L})}var Dr="_elmW6BL";function Ir(n,r,t,e,u,a){var c=n[t];if(!c)return c={c:0,z:e,r:u,s:void 0},a.push({r:u,A:c}),void(n[t]=c);if(1===c.c){a.push({r:u,A:c}),c.c=2;var i=[];return Lr(c.z,e,i,c.r),c.r=u,void(c.s.s={w:i,A:c})}Ir(n,r,t+Dr,e,u,a)}function Nr(n,r,t,e,u){var a=n[t];if(a){if(0===a.c){a.c=2;var c=[];return Lr(e,a.z,c,u),void kr(r,9,u,{w:c,A:a})}Nr(n,r,t+Dr,e,u)}else{var i=kr(r,9,u,void 0);n[t]={c:1,z:e,r:u,s:i}}}function Mr(n,r,t,e){!function n(r,t,e,u,a,c,i){var o=e[u];var f=o.r;for(;f===a;){var b=o.$;if(1===b)Mr(r,t.k,o.s,i);else if(8===b){o.t=r,o.u=i;var s=o.s.w;s.length>0&&n(r,t,s,0,a,c,i)}else if(9===b){o.t=r,o.u=i;var v=o.s;if(v){v.A.s=r;var s=v.w;s.length>0&&n(r,t,s,0,a,c,i)}}else o.t=r,o.u=i;if(!(o=e[++u])||(f=o.r)>c)return u}var d=t.$;if(4===d){for(var l=t.k;4===l.$;)l=l.k;return n(r,l,e,u,a+1,c,r.elm_event_node_ref)}var h=t.e;var $=r.childNodes;for(var g=0;gc))return u;a=m}return u}(n,r,t,0,0,r.b,e)}function qr(n,r,t,e){return 0===t.length?n:(Mr(n,r,t,e),Jr(n,t))}function Jr(n,r){for(var t=0;t>n}),t(function(n,r){return r>>>n});var Xr=a(function(n,r,t,e,u){for(var a=n.length,c=r+a<=u.length,i=0;c&&i0){var c=u.substring(0,a),i=u.substring(a+2);r=s(go,c,function(n){return Ye(po(n)?i+", "+n.a:i)},r)}}return r}(n.getAllResponseHeaders()),bM:n.response}}(n);if(n.status<200||300<=n.status)return t.body=n.responseText,V(yo(t));var e=r(t);return He(e)?Z(e.a):(t.body=n.responseText,V(b(mo,e.a,t)))}(e,n.bW.a))});try{e.open(n.b5,n.ck,!0)}catch(r){return t(V(wo(n.ck)))}!function(n,r){for(var t=r.b_;t.b;t=t.b)n.setRequestHeader(t.a.a,t.a.b);n.responseType=r.bW.b,n.withCredentials=r.cm,po(r.ci)&&(n.timeout=r.ci.a)}(e,n);var u=n.bM;return e.send(To(u)?(e.setRequestHeader("Content-Type",u.a),u.b):u.a),function(){e.abort()}})}));t(function(n,r){return{$:0,b:r.b,a:function(t){var e=r.a(t);return b(sc,n,e)}}});t(function(n,r){return z(function(t){var e=setInterval(function(){X(r)},n);return function(){clearInterval(e)}})});var tt=t(function(n,r){var t="g";n.bd&&(t+="m"),n.aM&&(t+="i");try{return Ye(new RegExp(r,t))}catch(n){return pe}}),et=(t(function(n,r){return null!==r.match(n)}),e(function(n,r,t){for(var e,u=[],a=0,c=t,i=r.lastIndex,o=-1;a++0;){var s=e[f];b[--f]=s?Ye(s):pe}u.push(v(mf,e[0],e.index,a,j(b))),o=r.lastIndex}return r.lastIndex=i,j(u)}),u(function(n,r,t,e){var u=0;return e.replace(r,function(r){if(u++>=n)return r;for(var e=arguments.length-3,a=new Array(e);e>0;){var c=arguments[e];a[--e]=c?Ye(c):pe}return t(v(mf,r,arguments[arguments.length-2],u,j(a)))})})),ut=(e(function(n,r,t){for(var e=t,u=[],a=r.lastIndex,c=r.lastIndex;n--;){var i=r.exec(e);if(!i)break;u.push(e.slice(a,i.index)),a=r.lastIndex}return u.push(e.slice(a)),r.lastIndex=c,j(u)}),w),at=e(function(n,r,e){var u=e.c,a=e.d,c=t(function(r,t){if(r.$){var e=r.a;return s(ut,n,t,e)}var u=r.a;return s(ut,c,t,u)});return s(ut,c,s(ut,n,r,a),u)}),ct=1,it=0,ot=T,ft=function(n){return s(at,ot,A,n)},bt=2,st=e(function(n,r,t){for(;;){if(-2===t.$)return r;var e=t.b,u=t.c,a=t.d,c=t.e,i=n,o=s(n,e,u,s(st,n,r,c));n=i,r=o,t=a}}),vt=function(n){return s(st,e(function(n,r,t){return b(ot,N(n,r),t)}),A,n)},dt=function(n){return s(st,e(function(n,r,t){return b(ot,n,t)}),A,n)},lt=t(function(n,r){return _(n,r)>0?n:r}),ht=t(function(n,r){return{$:0,a:n,b:r}}),$t=ht,gt=b($t,60,j([{a:60,b:35667420},{a:120,b:35365020},{a:60,b:35143260},{a:120,b:34840860},{a:60,b:34619100},{a:120,b:34306620},{a:60,b:34094940},{a:120,b:33782460},{a:60,b:33570780},{a:120,b:33258300},{a:60,b:33046620},{a:120,b:32734140},{a:60,b:32512380},{a:120,b:32209980},{a:60,b:31988220},{a:120,b:31685820},{a:60,b:31464060},{a:120,b:31151580},{a:60,b:30939900},{a:120,b:30627420},{a:60,b:30415740},{a:120,b:30103260},{a:60,b:29881500},{a:120,b:29579100},{a:60,b:29357340},{a:120,b:29054940},{a:60,b:28833180},{a:120,b:28530780},{a:60,b:28309020},{a:120,b:27996540},{a:60,b:27784860},{a:120,b:27472380},{a:60,b:27260700},{a:120,b:26948220},{a:60,b:26726460},{a:120,b:26424060},{a:60,b:26202300},{a:120,b:25899900},{a:60,b:25678140},{a:120,b:25365660},{a:60,b:25153980},{a:120,b:24841500},{a:60,b:24629820},{a:120,b:24317340},{a:60,b:24095580},{a:120,b:23793180},{a:60,b:23571420},{a:120,b:23269020},{a:60,b:23047260},{a:120,b:22744860},{a:60,b:22523100},{a:120,b:22210620},{a:60,b:21998940},{a:120,b:21686460},{a:60,b:21474780},{a:120,b:21162300},{a:60,b:20940540},{a:120,b:20638140},{a:60,b:20416380},{a:120,b:20113980},{a:60,b:19892220},{a:120,b:19579740},{a:60,b:19368060},{a:120,b:19055580},{a:60,b:18843900},{a:120,b:18531420},{a:60,b:18319740},{a:120,b:18007260},{a:60,b:17785500},{a:120,b:17483100},{a:60,b:17261340},{a:120,b:16958940},{a:60,b:16737180},{a:120,b:16424700},{a:60,b:16213020},{a:120,b:15900540},{a:60,b:15688860},{a:120,b:15376380},{a:60,b:15154620},{a:120,b:14852220},{a:60,b:14630460},{a:120,b:14328060},{a:60,b:14106300},{a:120,b:13803900},{a:60,b:13531740},{a:120,b:13269660},{a:60,b:13007580},{a:120,b:12745500},{a:60,b:12483420},{a:120,b:12221340},{a:60,b:11959260},{a:120,b:11697180},{a:60,b:11435100},{a:120,b:11173020},{a:60,b:10910940},{a:120,b:10638780},{a:60,b:10376700},{a:120,b:10114620},{a:60,b:9852540},{a:120,b:9590460},{a:60,b:9328380},{a:120,b:9066300},{a:60,b:8804220},{a:120,b:8542140},{a:60,b:8280060},{a:120,b:8017980},{a:60,b:7755900},{a:120,b:7483740},{a:60,b:7221660},{a:120,b:6959580},{a:60,b:6697500},{a:120,b:6435420},{a:60,b:6173340},{a:120,b:5911260},{a:60,b:5649180},{a:120,b:5397180},{a:60,b:5125020},{a:120,b:4862940},{a:60,b:4600860},{a:120,b:4338780},{a:60,b:4066620},{a:120,b:3814620},{a:60,b:3542340},{a:120,b:3280320}])),pt=gt,mt=(t(function(n,r){return r(n)}),B),yt={$:-2},wt=yt,At=a(function(n,r,t,e,u){return{$:-1,a:n,b:r,c:t,d:e,e:u}}),Ct=D,Tt=a(function(n,r,t,e,u){if(-1!==u.$||u.a){if(-1!==e.$||e.a||-1!==e.d.$||e.d.a)return d(At,n,r,t,e,u);e.a,h=e.b,$=e.c;var a=e.d,c=(a.a,a.b),i=a.c,o=a.d,f=a.e;p=e.e;return d(At,0,h,$,d(At,1,c,i,o,f),d(At,1,r,t,p,u))}u.a;var b=u.b,s=u.c,v=u.d,l=u.e;if(-1!==e.$||e.a)return d(At,n,b,s,d(At,0,r,t,e,v),l);e.a;var h=e.b,$=e.c,g=e.d,p=e.e;return d(At,0,r,t,d(At,1,h,$,g,p),d(At,1,b,s,v,l))}),jt=e(function(n,r,t){if(-2===t.$)return d(At,0,n,r,yt,yt);var e=t.a,u=t.b,a=t.c,c=t.d,i=t.e;switch(b(Ct,n,u)){case 0:return d(Tt,e,u,a,s(jt,n,r,c),i);case 1:return d(At,e,u,r,c,i);default:return d(Tt,e,u,a,c,s(jt,n,r,i))}}),xt=e(function(n,r,t){var e=s(jt,n,r,t);if(-1!==e.$||e.a)return e;e.a;var u=e.b,a=e.c,c=e.d,i=e.e;return d(At,1,u,a,c,i)}),kt=e(function(n,r,t){for(;;){if(!t.b)return r;var e=t.a,u=t.b,a=n,c=b(n,e,r);n=a,r=c,t=u}}),Lt=function(n){return s(kt,t(function(n,r){var t=n.a,e=n.b;return s(xt,t,e,r)}),wt,n)},Et=i(function(n,r,t,e,u,a,c){return{aT:t,a2:e,ba:c,bb:u,bc:r,bt:a,bJ:n}}),St=function(n){return n},Ot=St,_t=function(n){return n},Dt=t(function(n,r){return n(r)}),It=t(function(n,r){return _(n,r)<0?n:r}),Nt=O,Mt=function(n){return!b(mt,4,n)&&b(mt,100,n)||!b(mt,400,n)},qt=t(function(n,r){var t=Mt(n)?1:0;switch(r){case 0:return 0;case 1:return 31;case 2:return 59+t;case 3:return 90+t;case 4:return 120+t;case 5:return 151+t;case 6:return 181+t;case 7:return 212+t;case 8:return 243+t;case 9:return 273+t;case 10:return 304+t;default:return 334+t}}),Jt=Y,Gt=t(function(n,r){return Jt(n/r)}),Ft=function(n){var r=n-1;return 365*r+(b(Gt,r,4)-b(Gt,r,100)+b(Gt,r,400))},Bt=t(function(n,r){switch(r){case 0:return 31;case 1:return Mt(n)?29:28;case 2:return 31;case 3:return 30;case 4:return 31;case 5:return 30;case 6:case 7:return 31;case 8:return 30;case 9:return 31;case 10:return 30;default:return 31}}),Rt=function(n){switch(n){case 0:return 1;case 1:return 2;case 2:return 3;case 3:return 4;case 4:return 5;case 5:return 6;case 6:return 7;case 7:return 8;case 8:return 9;case 9:return 10;case 10:return 11;default:return 12}},Pt=function(n){switch(b(lt,1,n)){case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;default:return 11}},Yt=e(function(n,r,t){for(;;){var e=b(Bt,n,r),u=Rt(r);if(!(u<12&&_(t,e)>0))return{aT:t,bc:r,bJ:n};n=n,r=Pt(u+1),t=t-e}}),Ht=t(function(n,r){return N(b(Gt,n,r),b(mt,r,n))}),Wt=function(n){var r=b(Ht,n,146097),t=r.a,e=r.b,u=b(Ht,e,36524),a=u.a,c=u.b,i=b(Ht,c,1461),o=i.a,f=i.b,s=b(Ht,f,365);return 400*t+100*a+4*o+s.a+(s.b?1:0)},Zt=function(n){var r=function(n){var r=n,t=Wt(r);return{aD:r-Ft(t),bJ:t}}(n);return s(Yt,r.bJ,0,r.aD)},Vt=e(function(n,r,t){var e=t;switch(n){case 0:return s(Vt,1,12*r,e);case 1:var u=Zt(e),a=12*(u.bJ-1)+(Rt(u.bc)-1)+r,c=Pt(b(mt,12,a)+1),i=b(Gt,a,12)+1;return Ft(i)+b(qt,i,c)+b(It,u.aT,b(Bt,i,c));case 2:return e+7*r;default:return e+r}}),zt=t(function(n,r){return Jt(n/r)}),Ut=e(function(n,r,t){for(;;){if(!t.b)return r+n;var e=t.a,u=t.b;if(_(e.b,r)<0)return r+e.a;n=n,r=r,t=u}}),Qt=t(function(n,r){var t=n.a,e=n.b;return s(Ut,t,b(zt,_t(r),6e4),e)}),Kt=function(n){return-n},Xt=function(n){var r=b(zt,n,1440)+719468,t=(r>=0?r:r-146096)/146097|0,e=r-146097*t,u=(e-(e/1460|0)+(e/36524|0)-(e/146096|0))/365|0,a=e-(365*u+(u/4|0)-(u/100|0)),c=(5*a+2)/153|0,i=c+(c<10?3:-9);return{aT:a-((153*c+2)/5|0)+1,bc:i,bJ:u+400*t+(i<=2?1:0)}},ne=t(function(n,r){return Xt(b(Qt,n,r)).aT}),re=t(function(n,r){switch(Xt(b(Qt,n,r)).bc){case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;default:return 11}}),te=t(function(n,r){return Xt(b(Qt,n,r)).bJ}),ee=e(function(n,r,t){return _(t,n)<0?n:_(t,r)>0?r:t}),ue=e(function(n,r,t){return Ft(n)+b(qt,n,r)+s(ee,1,b(Bt,n,r),t)}),ae=t(function(n,r){return s(ue,b(te,n,r),b(re,n,r),b(ne,n,r))}),ce=function(n){return 864e5*(n-719163)},ie=t(function(n,r){return b(mt,24,b(zt,b(Qt,n,r),60))}),oe=t(function(n,r){return b(mt,1e3,_t(r))}),fe=t(function(n,r){return b(mt,60,b(Qt,n,r))}),be=t(function(n,r){return b(mt,60,b(zt,_t(r),1e3))}),se=u(function(n,r,t,e){return 36e5*n+6e4*r+1e3*t+e}),ve=t(function(n,r){return v(se,b(ie,n,r),b(fe,n,r),b(be,n,r),b(oe,n,r))}),de=t(function(n,r){var t=_t(r);return(ce(b(ae,n,r))+b(ve,n,r)-t)/6e4|0}),le=e(function(n,r,t){var e=ce(r)+t,u=b(de,n,Ot(e)),a=Ot(e-6e4*u),c=b(de,n,a);if(E(u,c))return a;var i=Ot(e-6e4*c);return E(c,b(de,n,i))?i:a}),he=u(function(n,r,t,e){n:for(;;)switch(n){case 15:return Ot(_t(e)+r);case 14:n=15,r=1e3*r,t=t,e=e;continue n;case 13:n=15,r=6e4*r,t=t,e=e;continue n;case 12:n=15,r=36e5*r,t=t,e=e;continue n;case 11:return s(le,t,s(Vt,3,r,b(ae,t,e)),b(ve,t,e));case 2:return s(le,t,s(Vt,1,r,b(ae,t,e)),b(ve,t,e));case 0:n=2,r=12*r,t=t,e=e;continue n;case 1:n=2,r=3*r,t=t,e=e;continue n;case 3:n=11,r=7*r,t=t,e=e;continue n;default:n=11,r=7*r,t=t,e=e;continue n}}),$e=t(function(n,r){var t=r.bJ,e=r.bc,u=r.aT,a=r.a2,c=r.bb,i=r.bt,o=r.ba;return s(le,n,s(ue,t,e,u),v(se,s(ee,0,23,a),s(ee,0,59,c),s(ee,0,59,i),s(ee,0,999,o)))}),ge=function(n){var r=b($e,pt,h(Et,n,4,8,0,0,0,0)),t=b(mt,100,n),e=b($e,pt,h(Et,n,10,1,0,0,0,0)),u=b($e,pt,h(Et,n,11,25,0,0,0,0)),a=b(mt,19,n),c=b($e,pt,h(Et,n,0,1,0,0,0,0)),i=b($e,pt,h(Et,n,6,14,0,0,0,0)),o=b($e,pt,h(Et,n,4,1,0,0,0,0)),f=b(mt,4,t),s=n/100|0,d=b(mt,30,19*a+s-(s/4|0)-((s-((s+8)/25|0)+1)/3|0)+15),l=b(mt,4,s),$=b(mt,7,2*l+2*(t/4|0)-d-f+32),g=d+$-7*((a+11*d+22*$)/451|0)+114,p=b(mt,31,g),m=b($e,pt,h(Et,n,function(n){switch(b(lt,1,n)){case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;default:return 11}}(g/31|0),p+1,0,0,0,0)),y=v(he,11,1,pt,m),w=v(he,11,50,pt,m),A=b($e,pt,h(Et,n,7,15,0,0,0,0)),C=v(he,11,39,pt,m),T=b($e,pt,h(Et,n,10,11,0,0,0,0));return Lt(j([N("P\xe2ques",m),N("Lundi de P\xe2ques",y),N("Ascension",C),N("Pentec\xf4te",w),N("Jour de l'an",c),N("F\xeate du Travail",o),N("Victoire des allies",r),N("F\xeate Nationale",i),N("Assomption",A),N("La Toussaint",e),N("Armistice",T),N("No\xebl",u)]))},pe={$:1},me=t(function(n,r){return{ac:pe,az:ge(b(te,gt,r)),as:pe,ah:n,Y:r}}),ye=u(function(n,r,t,e){return{$:0,a:n,b:r,c:t,d:e}}),we=P,Ae=t(function(n,r){return W(r)/W(n)}),Ce=we(b(Ae,2,32)),Te=[],je=v(ye,0,Ce,Te,Te),xe=function(n){return{$:1,a:n}},ke=function(n){return{$:0,a:n}},Le=p,Ee=function(n){return s(kt,ot,A,n)},Se=t(function(n,r){for(;;){var t=b(Le,32,n),e=t.a,u=t.b,a=b(ot,ke(e),r);if(!u.b)return Ee(a);n=u,r=a}}),Oe=function(n){return n.a},_e=t(function(n,r){for(;;){var t=we(r/32);if(1===t)return b(Le,32,n).a;n=b(Se,n,A),r=t}}),De=function(n){return n.length},Ie=t(function(n,r){if(r.g){var t=32*r.g,e=Jt(b(Ae,32,t-1)),u=n?Ee(r.i):r.i,a=b(_e,u,r.g);return v(ye,De(r.h)+t,b(lt,5,e*Ce),a,r.h)}return v(ye,De(r.h),Ce,Te,r.h)}),Ne=e(function(n,r,t){for(;;){var e=b(Le,32,n),u=e.a,a=e.b;if(_(De(u),32)<0)return b(Ie,!0,{i:r,g:t,h:u});n=a,r=b(ot,xe(u),r),t=t+1}}),Me=function(n){return n.b?s(Ne,n,A,0):je},qe={ab:{j:Me(j([72,69,76,80])),f:0},R:j([{t:"fun",j:Me(j([38,38,40,40,37,39,37,39,66,65])),f:0,x:Lt(j([N("start","6")])),B:"-iYBIsLFbKo"},{t:"fun2",j:Me(j([65,66,39,37,39,37,40,40,38,38])),f:0,x:wt,B:"vN-ARytZKgQ"},{t:"fun3",j:Me(j([83,65,77,66,65])),f:0,x:Lt(j([N("start","24")])),B:"HAiHEQblKeQ"}])},Je={F:0,G:0},Ge={D:Je,E:Je,J:pe,N:0,W:2},Fe={aL:b(me,0,Ot(0)),aR:pe,aS:pe,aV:pe,a8:!0,a9:!1,bu:qe,bv:{O:"Cyber1 TD2",S:"12"},bx:{a$:800,bI:1200},bA:Ge},Be=function(n){return{$:4,a:n}},Re=St,Pe=function(n){for(;;){n=n}},Ye=function(n){return{$:0,a:n}},He=function(n){return!n.$},We=Z,Ze=We(0),Ve=u(function(n,r,t,e){if(e.b){var u=e.a,a=e.b;if(a.b){var c=a.a,i=a.b;if(i.b){var o=i.a,f=i.b;if(f.b){var d=f.a,l=f.b;return b(n,u,b(n,c,b(n,o,b(n,d,t>500?s(kt,n,r,Ee(l)):v(Ve,n,r,t+1,l)))))}return b(n,u,b(n,c,b(n,o,r)))}return b(n,u,b(n,c,r))}return b(n,u,r)}return r}),ze=e(function(n,r,t){return v(Ve,n,r,0,t)}),Ue=t(function(n,r){return s(ze,t(function(r,t){return b(ot,n(r),t)}),A,r)}),Qe=U,Ke=t(function(n,r){return b(Qe,function(r){return We(n(r))},r)}),Xe=e(function(n,r,t){return b(Qe,function(r){return b(Qe,function(t){return We(b(n,r,t))},t)},r)}),nu=function(n){return s(ze,Xe(ot),We(A),n)},ru=g,tu=a(function(n,r,t,e,u){for(;;){if(r<0)return b(Ie,!1,{i:e,g:t/32|0,h:u});var a=xe(s(ru,32,r,n));n=n,r=r-32,t=t,e=b(ot,a,e),u=u}}),eu=t(function(n,r){if(n<=0)return je;var t=n%32,e=s(ru,t,n-t,r);return d(tu,r,n-t-32,n,A,e)}),uu=function(n){return{$:1,a:n}},au=function(n){return{$:0,a:n}},cu=t(function(n,r){return{$:3,a:n,b:r}}),iu=t(function(n,r){return{$:0,a:n,b:r}}),ou=t(function(n,r){return{$:1,a:n,b:r}}),fu=function(n){return{$:2,a:n}},bu=function(n){var r=n.charCodeAt(0);return 55296<=r&&r<=56319?1024*(r-55296)+n.charCodeAt(1)-56320+65536:r},su=function(n){var r=bu(n);return 97<=r&&r<=122},vu=function(n){var r=bu(n);return r<=90&&65<=r},du=function(n){return su(n)||vu(n)},lu=function(n){var r=bu(n);return r<=57&&48<=r},hu=function(n){return su(n)||vu(n)||lu(n)},$u=function(n){return s(kt,t(function(n,r){return r+1}),0,n)},gu=k,pu=e(function(n,r,t){for(;;){if(!(_(n,r)<1))return t;var e=n,u=r-1,a=b(ot,r,t);n=e,r=u,t=a}}),mu=t(function(n,r){return s(pu,n,r,A)}),yu=t(function(n,r){return s(gu,n,b(mu,0,$u(r)-1),r)}),wu=ln,Au=pn,Cu=t(function(n,r){return b(vn,n,x(r))}),Tu=function(n){var r=n.charCodeAt(0);return r?Ye(55296<=r&&r<=56319?N(q(n[0]+n[1]),n.slice(2)):N(q(n[0]),n.slice(1))):pe},ju=t(function(n,r){return j(b(sn,n,r))}),xu=function(n){return b(Cu,"\n ",b(ju,"\n",n))},ku=_n,Lu=t(function(n,r){return"\n\n("+Au(n+1)+") "+xu(Eu(r))}),Eu=function(n){return b(Su,n,A)},Su=t(function(n,r){n:for(;;)switch(n.$){case 0:var t=n.a,e=n.b,u=function(){var n=Tu(t);if(1===n.$)return!1;var r=n.a,e=r.a,u=r.b;return du(e)&&b(wu,hu,u)}(),a=e,c=b(ot,u?"."+t:"['"+t+"']",r);n=a,r=c;continue n;case 1:var i=n.a,o=(e=n.b,"["+Au(i)+"]");a=e,c=b(ot,o,r);n=a,r=c;continue n;case 2:var f=n.a;if(f.b){if(f.b.b){var s=(r.b?"The Json.Decode.oneOf at json"+b(Cu,"",Ee(r)):"Json.Decode.oneOf")+" failed in the following "+Au($u(f))+" ways:";return b(Cu,"\n\n",b(ot,s,b(yu,Lu,f)))}n=a=e=f.a,r=c=r;continue n}return"Ran into a Json.Decode.oneOf with no possibilities"+(r.b?" at json"+b(Cu,"",Ee(r)):"!");default:var v=n.a,d=n.b;return(s=r.b?"Problem with the value at json"+b(Cu,"",Ee(r))+":\n\n ":"Problem with the given value:\n\n")+(xu(b(ku,4,d))+"\n\n")+v}}),Ou=Rn,_u=t(function(n,r){var t=r;return nn(b(Qe,Ou(n),t))}),Du=e(function(n,r,t){return b(Ke,function(n){return 0},nu(b(Ue,_u(n),r)))}),Iu=e(function(n,r,t){return We(0)}),Nu=t(function(n,r){return b(Ke,n,r)});Gn.Task=Fn(Ze,Du,Iu,Nu);var Mu=Yn("Task"),qu=t(function(n,r){return Mu(b(Ke,n,r))}),Ju=wn,Gu=An,Fu=function(n){return{$:0,a:n}},Bu=function(n){switch(n.$){case 0:return 0;case 1:return 1;case 2:return 2;default:return 3}},Ru=function(n){return n.length},Pu=dn,Yu=t(function(n,r){return n<1?r:s(Pu,n,Ru(r),r)}),Hu=$n,Wu=gn,Zu=function(n){return""===n},Vu=t(function(n,r){return n<1?"":s(Pu,0,n,r)}),zu=hn,Uu=function(n){for(var r=0,t=n.charCodeAt(0),e=43==t||45==t?1:0,u=e;u0?N(c,s(u,t,e,i)):N(d,v(r,f,b,e,i))}return N(c,s(u,t,e,i))}}),f=s(pa,o,N(vt(a),i),c),b=f.a,d=f.b;return s(kt,t(function(r,t){var e=r.a,u=r.b;return s(n,e,u,t)}),d,b)}),ya=t(function(n,r){return s(pa,xt,r,n)}),wa=function(n){return z(function(r){var t=n.f;2===t.$&&t.c&&t.c(),n.f=null,r(Z(I))})},Aa=e(function(n,r,t){var a=e(function(r,t,e){var u=e.a,a=e.b,c=e.c;return M(u,a,b(ot,s(ga,n,r,t),c))}),c=e(function(n,r,t){var e=t.a,u=t.b,a=t.c;return M(b(ot,r,e),u,a)}),i=u(function(n,r,t,e){var u=e.a,a=e.b,c=e.c;return M(u,s(xt,n,r,a),c)}),o=b(Ue,la,r),f=l(ma,c,i,a,t.bg,Lt(o),M(A,wt,A)),v=f.a,d=f.b,h=f.c;return b(Qe,function(n){return We(b(va,o,b(ya,d,Lt(n))))},b(Qe,function(n){return nu(h)},nu(b(Ue,wa,v))))}),Ca=e(function(n,r,t){var e=n(r);if(e.$)return t;var u=e.a;return b(ot,u,t)}),Ta=t(function(n,r){return s(ze,Ca(n),A,r)}),ja=e(function(n,r,t){var e=r.a6,u=r.aW,a=b(Ta,function(n){var r=n.a,t=n.b,a=(t.a,t.b,t.c);return E(r,e)?b(Vr,a,u):pe},t.bz);return b(Qe,function(n){return We(t)},nu(b(Ue,Ou(n),a)))}),xa=t(function(n,r){var t=r.a,e=r.b,u=r.c;return s(sa,t,e,b(Ju,n,u))});Gn["Browser.Events"]=Fn(da,Aa,ja,0,xa);var ka,La,Ea,Sa,Oa=Yn("Browser.Events"),_a=b(e(function(n,r,t){return Oa(s(sa,n,r,t))}),0,"keydown"),Da=Hn,Ia=t(function(n,r){var t=r,e=t.ah,u=t.Y,a=function(){switch(e){case 0:case 1:return 3;default:return 11}}();return J(r,{ac:pe,Y:v(he,a,n,gt,u)})}),Na=t(function(n,r){switch(n.$){case 0:return b(Ia,-1,r);case 1:return b(Ia,1,r);case 3:return b(Ia,-7,r);case 2:return b(Ia,7,r);case 4:return J(r,{ah:n.a});case 5:return J(r,{Y:n.a});case 6:var t=n.a;return J(r,{as:Ye(t)});case 7:t=n.a;return J(r,{ac:Ye(t)});default:t=n.a;return J(r,{ac:pe})}}),Ma={$:0},qa={$:1},Ja=j([{O:"Cyber1 TD1",S:"11"},{O:"Cyber1 TD2",S:"12"},{O:"Cyber2 TD1",S:"21"},{O:"Cyber2 TD2",S:"22"},{O:"Cyber3 TD1",S:"31"},{O:"Cyber3 TD2",S:"32"}]),Ga=St,Fa=e(function(n,r,t){return r(n(t))}),Ba=on,Ra=function(n){return b(Ba,n,"")},Pa=e(function(n,r,t){return n<=0?t:s(Pa,n>>1,G(r,r),1&n?G(t,r):t)}),Ya=t(function(n,r){return s(Pa,n,r,"")}),Ha=e(function(n,r,t){return G(b(Ya,n-Ru(t),Ra(r)),t)}),Wa=function(n){return x(n).join("")},Za=function(n){n:for(;;)switch(n){case 0:return"0";case 1:return"1";case 2:return"2";case 3:return"3";case 4:return"4";case 5:return"5";case 6:return"6";case 7:return"7";case 8:return"8";case 9:return"9";case 10:return"a";case 11:return"b";case 12:return"c";case 13:return"d";case 14:return"e";case 15:return"f";default:n=n;continue n}},Va=t(function(n,r){for(;;){if(r<16)return b(ot,Za(r),n);n=b(ot,Za(b(mt,16,r)),n),r=r/16|0}}),za=function(n){return Wa(n<0?b(ot,"-",b(Va,A,-n)):b(Va,A,n))},Ua=t(function(n,r){var t=Jt(n);return b(mt,r,t)+n-t}),Qa=function(n){return n<0?-n:n},Ka=R,Xa=function(n){return n*Ka/180},nc=e(function(n,r,t){var e=n/Xa(60),u=(1-Qa(2*t-1))*r,a=t-u/2,c=u*(1-Qa(b(Ua,e,2)-1)),i=e<0?M(0,0,0):e<1?M(u,c,0):e<2?M(c,u,0):e<3?M(0,u,c):e<4?M(0,c,u):e<5?M(c,0,u):e<6?M(u,0,c):M(0,0,0);return M(i.a+a,i.b+a,i.c+a)}),rc=H,tc=u(function(n,r,t,e){var u,a=s(nc,n-(u=Jt(n/(2*Ka)),2*Ka*u),r,t),c=a.a,i=a.b,o=a.c;return{C:e,bL:rc(255*o),bZ:rc(255*i),cb:rc(255*c)}}),ec=e(function(n,r,t){return v(tc,n,r,t,1)}),uc=e(function(n,r,t){var e=n/255,u=r/255,a=t/255,c=b(lt,b(lt,e,u),a),i=b(It,b(It,e,u),a),o=c-i,f=(c+i)/2,s=f?o/(1-Qa(2*f-1)):0;return M(Xa(60)*(E(c,e)?b(Ua,(u-a)/o,6):E(c,u)?(a-e)/o+2:(e-u)/o+4),s,f)}),ac=function(n){var r=function(n){var r=s(uc,n.cb,n.bZ,n.bL),t=r.a,e=r.b,u=r.c;return{C:n.C,b0:t,a7:u,br:e}}(n),t=r.a7>.4?.4:r.a7;r.br;return s(ec,r.b0,r.br,t)},cc=e(function(n,r,t){return{C:1,bL:t,bZ:r,cb:n}}),ic=t(function(n,r){return r.$?n:r.a}),oc=t(function(n,r){return n<1?r:s(Pu,0,-n,r)}),fc=t(function(n,r){return n<1?"":s(Pu,-n,Ru(r),r)}),bc=t(function(n,r){return r.$?n:r.a}),sc=t(function(n,r){if(r.$){var t=r.a;return uu(t)}var e=r.a;return au(n(e))}),vc=t(function(n,r){if(r.$){var t=r.a;return uu(n(t))}var e=r.a;return au(e)}),dc=bn,lc=function(n){return s(dc,ot,A,n)},hc=F,$c=e(function(n,r,t){n:for(;;){if(!r.b)return au(t);var e=r.a,u=r.b;switch(e){case"0":n=a=n-1,r=c=u,t=i=t;continue n;case"1":var a=n-1,c=u,i=t+b(hc,16,n);n=a,r=c,t=i;continue n;case"2":a=n-1,c=u,i=t+2*b(hc,16,n);n=a,r=c,t=i;continue n;case"3":a=n-1,c=u,i=t+3*b(hc,16,n);n=a,r=c,t=i;continue n;case"4":a=n-1,c=u,i=t+4*b(hc,16,n);n=a,r=c,t=i;continue n;case"5":a=n-1,c=u,i=t+5*b(hc,16,n);n=a,r=c,t=i;continue n;case"6":a=n-1,c=u,i=t+6*b(hc,16,n);n=a,r=c,t=i;continue n;case"7":a=n-1,c=u,i=t+7*b(hc,16,n);n=a,r=c,t=i;continue n;case"8":a=n-1,c=u,i=t+8*b(hc,16,n);n=a,r=c,t=i;continue n;case"9":a=n-1,c=u,i=t+9*b(hc,16,n);n=a,r=c,t=i;continue n;case"a":a=n-1,c=u,i=t+10*b(hc,16,n);n=a,r=c,t=i;continue n;case"b":a=n-1,c=u,i=t+11*b(hc,16,n);n=a,r=c,t=i;continue n;case"c":a=n-1,c=u,i=t+12*b(hc,16,n);n=a,r=c,t=i;continue n;case"d":a=n-1,c=u,i=t+13*b(hc,16,n);n=a,r=c,t=i;continue n;case"e":a=n-1,c=u,i=t+14*b(hc,16,n);n=a,r=c,t=i;continue n;case"f":a=n-1,c=u,i=t+15*b(hc,16,n);n=a,r=c,t=i;continue n;default:return uu(Ra(e)+" is not a valid hexadecimal character.")}}}),gc=function(n){if(Zu(n))return uu("Empty strings are not valid hexadecimal strings.");var r=function(){if(b(Hu,"-",n)){var r=b(bc,A,function(n){if(n.b){n.a;var r=n.b;return Ye(r)}return pe}(lc(n)));return b(sc,Kt,s($c,$u(r)-1,r,0))}return s($c,Ru(n)-1,lc(n),0)}();return b(vc,function(r){return b(Cu," ",j(['"'+n+'"',"is not a valid hexadecimal string because",r]))},r)},pc=4294967295>>>32-Ce,mc=m,yc=y,wc=u(function(n,r,t,e){var u=pc&r>>>n,a=b(mc,u,e);if(a.$){var c=a.a,i=s(yc,pc&r,t,c);return s(yc,u,xe(i),e)}var o=a.a,f=v(wc,n-Ce,r,t,o);return s(yc,u,ke(f),e)}),Ac=function(n){return n>>>5<<5},Cc=e(function(n,r,t){var e=t.a,u=t.b,a=t.c,c=t.d;return n<0||_(n,e)>-1?t:_(n,Ac(e))>-1?v(ye,e,u,a,s(yc,pc&n,r,c)):v(ye,e,u,v(wc,u,n,r,a),c)}),Tc=b(t(function(n,r){return b(eu,n,function(n){return r})}),16,0),jc=t(function(n,r){return 4294967295&n+r}),xc=t(function(n,r){return r<>>32-n}),kc=o(function(n,r,t,e,u,a,c,i){return b(jc,t,b(xc,c,b(jc,r,b(jc,i,b(jc,s(n,t,e,u),a)))))}),Lc=e(function(n,r,t){return t^n&(r^t)}),Ec=i(function(n,r,t,e,u,a,c){return $(kc,Lc,n,r,t,e,u,a,c)}),Sc=e(function(n,r,t){return r^t&(n^r)}),Oc=i(function(n,r,t,e,u,a,c){return $(kc,Sc,n,r,t,e,u,a,c)}),_c=e(function(n,r,t){return t^n^r}),Dc=i(function(n,r,t,e,u,a,c){return $(kc,_c,n,r,t,e,u,a,c)}),Ic=e(function(n,r,t){return r^(n|~t)}),Nc=i(function(n,r,t,e,u,a,c){return $(kc,Ic,n,r,t,e,u,a,c)}),Mc=t(function(n,r){var t=r.an,e=r.ao,u=r.ap,a=r.aq;if(n.b&&n.b.b&&n.b.b.b&&n.b.b.b.b&&n.b.b.b.b.b&&n.b.b.b.b.b.b&&n.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b&&!n.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b){var c=n.a,i=n.b,o=i.a,f=i.b,s=f.a,v=f.b,d=v.a,l=v.b,$=l.a,g=l.b,p=g.a,m=g.b,y=m.a,w=m.b,A=w.a,C=w.b,T=C.a,j=C.b,x=j.a,k=j.b,L=k.a,E=k.b,S=E.a,O=E.b,_=O.a,D=O.b,I=D.a,N=D.b,M=N.a,q=N.b.a,J=a,G=u,F=e,B=t,R=h(Ec,B,F,G,J,c,7,3614090360),P=h(Ec,J,R,F,G,o,12,3905402710),Y=h(Ec,G,P,R,F,s,17,606105819),H=h(Ec,F,Y,P,R,d,22,3250441966),W=h(Ec,R,H,Y,P,$,7,4118548399),Z=h(Ec,P,W,H,Y,p,12,1200080426),V=h(Ec,Y,Z,W,H,y,17,2821735955),z=h(Ec,H,V,Z,W,A,22,4249261313),U=h(Ec,W,z,V,Z,T,7,1770035416),Q=h(Ec,Z,U,z,V,x,12,2336552879),K=h(Ec,V,Q,U,z,L,17,4294925233),X=h(Ec,z,K,Q,U,S,22,2304563134),nn=h(Ec,U,X,K,Q,_,7,1804603682),rn=h(Ec,Q,nn,X,K,I,12,4254626195),tn=h(Ec,K,rn,nn,X,M,17,2792965006),en=h(Ec,X,tn,rn,nn,q,22,1236535329),un=h(Oc,nn,en,tn,rn,o,5,4129170786),an=h(Oc,rn,un,en,tn,y,9,3225465664),cn=h(Oc,tn,an,un,en,S,14,643717713),on=h(Oc,en,cn,an,un,c,20,3921069994),fn=h(Oc,un,on,cn,an,p,5,3593408605),bn=h(Oc,an,fn,on,cn,L,9,38016083),sn=h(Oc,cn,bn,fn,on,q,14,3634488961),vn=h(Oc,on,sn,bn,fn,$,20,3889429448),dn=h(Oc,fn,vn,sn,bn,x,5,568446438),ln=h(Oc,bn,dn,vn,sn,M,9,3275163606),hn=h(Oc,sn,ln,dn,vn,d,14,4107603335),$n=h(Oc,vn,hn,ln,dn,T,20,1163531501),gn=h(Oc,dn,$n,hn,ln,I,5,2850285829),pn=h(Oc,ln,gn,$n,hn,s,9,4243563512),mn=h(Oc,hn,pn,gn,$n,A,14,1735328473),yn=h(Oc,$n,mn,pn,gn,_,20,2368359562),wn=h(Dc,gn,yn,mn,pn,p,4,4294588738),An=h(Dc,pn,wn,yn,mn,T,11,2272392833),Cn=h(Dc,mn,An,wn,yn,S,16,1839030562),Tn=h(Dc,yn,Cn,An,wn,M,23,4259657740),jn=h(Dc,wn,Tn,Cn,An,o,4,2763975236),xn=h(Dc,An,jn,Tn,Cn,$,11,1272893353),kn=h(Dc,Cn,xn,jn,Tn,A,16,4139469664),Ln=h(Dc,Tn,kn,xn,jn,L,23,3200236656),En=h(Dc,jn,Ln,kn,xn,I,4,681279174),Sn=h(Dc,xn,En,Ln,kn,c,11,3936430074),On=h(Dc,kn,Sn,En,Ln,d,16,3572445317),_n=h(Dc,Ln,On,Sn,En,y,23,76029189),Dn=h(Dc,En,_n,On,Sn,x,4,3654602809),In=h(Dc,Sn,Dn,_n,On,_,11,3873151461),Nn=h(Dc,On,In,Dn,_n,q,16,530742520),Mn=h(Dc,_n,Nn,In,Dn,s,23,3299628645),qn=h(Nc,Dn,Mn,Nn,In,c,6,4096336452),Jn=h(Nc,In,qn,Mn,Nn,A,10,1126891415),Gn=h(Nc,Nn,Jn,qn,Mn,M,15,2878612391),Fn=h(Nc,Mn,Gn,Jn,qn,p,21,4237533241),Bn=h(Nc,qn,Fn,Gn,Jn,_,6,1700485571),Rn=h(Nc,Jn,Bn,Fn,Gn,d,10,2399980690),Pn=h(Nc,Gn,Rn,Bn,Fn,L,15,4293915773),Yn=h(Nc,Fn,Pn,Rn,Bn,o,21,2240044497),Hn=h(Nc,Bn,Yn,Pn,Rn,T,6,1873313359),Wn=h(Nc,Rn,Hn,Yn,Pn,q,10,4264355552),Zn=h(Nc,Pn,Wn,Hn,Yn,y,15,2734768916),Vn=h(Nc,Yn,Zn,Wn,Hn,I,21,1309151649),zn=h(Nc,Hn,Vn,Zn,Wn,$,6,4149444226),Un=h(Nc,Wn,zn,Vn,Zn,S,10,3174756917),Qn=h(Nc,Zn,Un,zn,Vn,s,15,718787259),Kn=h(Nc,Vn,Qn,Un,zn,x,21,3951481745),Xn=b(jc,F,Kn),nr=b(jc,G,Qn),rr=b(jc,J,Un);return{an:b(jc,B,zn),ao:Xn,ap:nr,aq:rr}}return r}),qc=e(function(n,r,t){for(;;){var e=b(mc,pc&r>>>n,t);if(e.$){var u=e.a;return b(mc,pc&r,u)}var a=e.a;n=n-Ce,r=r,t=a}}),Jc=t(function(n,r){var t=r.a,e=r.b,u=r.c,a=r.d;return n<0||_(n,t)>-1?pe:_(n,Ac(t))>-1?Ye(b(mc,pc&n,a)):Ye(s(qc,e,n,u))}),Gc=t(function(n,r){return b(bc,0,b(Jc,n,r))}),Fc=t(function(n,r){var t=r.a,e=r.b,u=e.a,a=e.b,c=r.c,i=u/4|0,o=b(Gc,i,a),f=s(Cc,i,o|n<>>6,t):b(n,128|63&r>>>6,r<65536?b(n,224|r>>>12,t):b(n,128|63&r>>>12,b(n,240|r>>>18,t))))}),Yc=e(function(n,r,e){return s(Rc,t(function(r,t){return s(Pc,n,bu(r),t)}),r,e)}),Hc=function(n){return r=s(Yc,Fc,M(Bc,N(0,Tc),0),n),e=r.a,u=r.b,a=u.a,c=u.b,i=r.c,f=b(Gc,o=a/4|0,c),v=s(Cc,o,f|128<>>29,s(Cc,14,i<<3,v))),b(Mc,t,e)):function(n){return b(Mc,n,b(Mc,ft(v),e))}(ft(s(Cc,15,i>>>29,s(Cc,14,i<<3,Tc))));var r,t,e,u,a,c,i,o,f,v},Wc=function(n){switch(n){case 0:return"0";case 1:return"1";case 2:return"2";case 3:return"3";case 4:return"4";case 5:return"5";case 6:return"6";case 7:return"7";case 8:return"8";case 9:return"9";case 10:return"a";case 11:return"b";case 12:return"c";case 13:return"d";case 14:return"e";case 15:return"f";default:return G(Wc(n/16|0),Wc(n%16))}},Zc=function(n){return s(kt,t(function(n,r){return G(r,s(Ha,2,"0",Wc(n)))}),"",(r=Hc(n),e=r.an,u=r.ao,a=r.ap,c=r.aq,j([255&e,e>>>8&255,e>>>16&255,e>>>24&255,255&u,u>>>8&255,u>>>16&255,u>>>24&255,255&a,a>>>8&255,a>>>16&255,a>>>24&255,255&c,c>>>8&255,c>>>16&255,c>>>24&255])));var r,e,u,a,c},Vc=function(n){var r,t,e,u=b(fc,6,Zc(b(oc,1,n))),a=b(ic,0,gc(s(Pu,0,2,u))),c=b(ic,0,gc(s(Pu,2,4,u))),i=b(ic,0,gc(s(Pu,4,6,u)));return r=ac(s(cc,a,c,i)),t=b(Fa,za,b(Ha,2,"0")),e=Ga(r),"#"+(t(e.cb)+(t(e.bZ)+t(e.bL)))},zc=e(function(n,r,t){return{aP:r,bi:t,bq:n}}),Uc=function(n){return s(zc,n.bq,n.aP,n.bi)},Qc=t(function(n,r){n:for(;;)switch(n.$){case 0:return r;case 1:var t=n.a,e=n.b;n=t,r=b(ot,e,r);continue n;default:t=n.a;var u=n.b;n=t,r=b(Qc,u,r);continue n}}),Kc=t(function(n,r){var t=n({aP:1,d:A,e:1,a:0,bq:1,c:r});if(t.$){var e=t.b;return uu(b(Qc,e,A))}var u=t.b;return au(u)}),Xc=t(function(n,r){var t=b(Kc,n,r);if(t.$){var e=t.a;return uu(b(Ue,Uc,e))}var u=t.a;return au(u)}),ni=t(function(n,r){return{$:1,a:n,b:r}}),ri=e(function(n,r,t){return{$:0,a:n,b:r,c:t}}),ti=t(function(n,r){var t=r;return function(r){var e=t(r);if(1===e.$){var u=e.a,a=e.b;return b(ni,u,a)}var c=e.a,i=e.b,o=e.c,f=n(i)(o);if(1===f.$){var v=f.a;a=f.b;return b(ni,c||v,a)}v=f.a;var d=f.b,l=f.c;return s(ri,c||v,d,l)}}),ei=t(function(n,r){return{$:1,a:n,b:r}}),ui=u(function(n,r,t,e){return{aP:r,bQ:e,bi:t,bq:n}}),ai={$:0},ci=t(function(n,r){return b(ei,ai,v(ui,n.bq,n.aP,r,n.d))}),ii=(ka={$:10},function(n){return E(Ru(n.c),n.a)?s(ri,!1,0,n):b(ni,!1,b(ci,n,ka))}),oi=t(function(n,r){return n}),fi=e(function(n,r,t){var e=r,u=t;return function(r){var t=e(r);if(1===t.$){var a=t.a,c=t.b;return b(ni,a,c)}var i=t.a,o=t.b,f=t.c,v=u(f);if(1===v.$){var d=v.a;c=v.b;return b(ni,i||d,c)}d=v.a;var l=v.b,h=v.c;return s(ri,i||d,b(n,o,l),h)}}),bi=t(function(n,r){return s(fi,oi,n,r)}),si=t(function(n,r){return s(fi,Dt,n,r)}),vi=t(function(n,r){var t=r;return function(r){var e=t(r);if(e.$){a=e.a;var u=e.b;return b(ni,a,u)}var a=e.a,c=e.b,i=e.c;return s(ri,a,n(c),i)}}),di=t(function(n,r){return{$:2,a:n,b:r}}),li=e(function(n,r,t){n:for(;;){if(t.b){var e=t.a,u=t.b,a=e(n);if(a.$){var c,i=(c=a).a,o=c.b;if(i)return c;n=n,r=b(di,r,o),t=u;continue n}return c=a}return b(ni,!1,r)}}),hi=function(n){return function(r){return s(li,r,ai,n)}},$i=function(n){return function(r){return s(ri,!1,n,r)}},gi=t(function(n,r){return{$:0,a:n,b:r}}),pi=Xr,mi=function(n){var r=n.a,t=n.b,e=!Zu(r);return function(n){var u=d(pi,r,n.a,n.bq,n.aP,n.c),a=u.a,c=u.b,i=u.c;return E(a,-1)?b(ni,!1,b(ci,n,t)):s(ri,e,0,{aP:i,d:n.d,e:n.e,a,bq:c,c:n.c})}},yi=function(n){return mi(b(gi,n,{$:8,a:n}))},wi=function(n){if(0===n.length||/[\sxbo]/.test(n))return pe;var r=+n;return r===r?Ye(r):pe},Ai=nt,Ci=a(function(n,r,t,e,u){for(;;){var a=s(Ai,n,r,u.c);if(E(a,-1))return s(ri,_(u.a,r)<0,0,{aP:e,d:u.d,e:u.e,a:r,bq:t,c:u.c});if(E(a,-2))n=n,r=r+1,t=t+1,e=1,u=u;else n=n,r=a,t=t,e=e+1,u=u}}),Ti=function(n){return function(r){return d(Ci,n,r.a,r.bq,r.aP,r)}},ji=t(function(n,r){var t=r;return function(r){var e=t(r);if(1===e.$){var u=e.a,a=e.b;return b(ni,u,a)}u=e.a;var c=e.b,i=e.c;return s(ri,u,b(n,s(Pu,r.a,i.a,r.c),c),i)}}),xi=function(n){return b(ji,oi,n)},ki=function(n){return r={$:12,a:n},function(n){return b(ni,!1,b(ci,n,r))};var r},Li=b(ti,function(n){if(Ru(n)<=9){var r=wi("0."+n);if(r.$)return ki('Invalid float: "'+n+'"');var t=r.a;return $i(rc(1e3*t))}return ki("Expected at most 9 digits, but got "+Au(Ru(n)))},xi(Ti(lu))),Ei=c(function(n,r,t,e,u,a){return Ot(n+60*r*60*1e3+60*(t-a)*1e3+1e3*e+u)}),Si=function(n){return b(ti,function(r){if(E(Ru(r),n)){var t=Uu(r);if(t.$)return ki('Invalid integer: "'+r+'"');var e=t.a;return $i(e)}return ki("Expected "+Au(n)+" digits, but got "+Au(Ru(r)))},xi(Ti(lu)))},Oi=function(n){return ki("Invalid day: "+Au(n))},_i=function(n){return!b(mt,4,n)&&(b(mt,100,n)||!b(mt,400,n))},Di=function(n){var r=n-1;return(r/4|0)-(r/100|0)+(r/400|0)},Ii=b(ti,function(n){var r=n.a,t=n.b,e=n.c;if(e<0)return Oi(e);var u=function(n){var u=31536e6*(r-1970),a=864e5*((t<3||!_i(r)?e-1:e)+(Di(r)-Di(1970)));return $i(n+u+a)};switch(t){case 1:return e>31?Oi(e):u(0);case 2:return e>29||29===e&&!_i(r)?Oi(e):u(26784e5);case 3:return e>31?Oi(e):u(50976e5);case 4:return e>30?Oi(e):u(7776e6);case 5:return e>31?Oi(e):u(10368e6);case 6:return e>30?Oi(e):u(130464e5);case 7:return e>31?Oi(e):u(156384e5);case 8:return e>31?Oi(e):u(183168e5);case 9:return e>30?Oi(e):u(209952e5);case 10:return e>31?Oi(e):u(235872e5);case 11:return e>30?Oi(e):u(262656e5);case 12:return e>31?Oi(e):u(288576e5);default:return ki('Invalid month: "'+Au(t)+'"')}},b(si,b(si,b(si,$i(e(function(n,r,t){return M(n,r,t)})),b(bi,Si(4),yi("-"))),b(bi,Si(2),yi("-"))),Si(2))),Ni=e(function(n,r,t){return n*(60*r+t)}),Mi=b(ti,function(n){return hi(j([b(si,b(si,b(si,b(si,b(si,b(bi,$i(Ei(n)),yi("T")),b(bi,Si(2),yi(":"))),b(bi,Si(2),yi(":"))),Si(2)),hi(j([b(si,b(bi,$i(St),yi(".")),Li),$i(0)]))),hi(j([b(vi,function(n){return 0},yi("Z")),b(si,b(si,b(si,$i(Ni),hi(j([b(vi,function(n){return 1},yi("+")),b(vi,function(n){return-1},yi("-"))]))),b(bi,Si(2),yi(":"))),Si(2))]))),b(bi,$i(l(Ei,n,0,0,0,0,0)),ii)]))},Ii),qi=function(n){return b(ic,Ot(0),b(Xc,Mi,n+".000Z"))},Ji=function(n){return{aO:n.aO,aQ:Vc(n.aG),bT:qi(n.bS),a_:n.a_,ce:qi(n.cd),bC:n.bC,aG:n.aG,bD:n.bU}},Gi={$:0},Fi={$:5},Bi={$:6},Ri=function(n){return{$:2,a:n}},Pi=function(n){return{$:13,a:n}},Yi=t(function(n,r){var t=b(Jc,r.f,r.j);return t.$?J(r,{f:0}):E(n,t.a)?J(r,{f:r.f+1}):J(r,{f:0})}),Hi=t(function(n,r){var t=b(Yi,n,{j:r.j,f:r.f});return{t:r.t,j:t.j,f:t.f,x:r.x,B:r.B}}),Wi=t(function(n,r){var t=b(Ue,Hi(n),r.R);return{ab:b(Yi,n,r.ab),R:t}}),Zi=Mn,Vi=zn("doload",function(n){return Zi}),zi=Dn,Ui=zn("save",zi),Qi=function(n){var r=n.F;n.G;return r>0?Ye(1):r<0?Ye(0):pe},Ki=t(function(n,r){return{F:n.F-r.F,G:n.G-r.G}}),Xi=t(function(n,r){switch(n.$){case 0:return{D:(t=n.a).u,E:Je,J:pe,N:t.ad,W:0};case 1:var t=n.a,e=Qi(b(Ki,t.u,r.D));return J(r,{E:t.u,J:e,N:t.ad,W:1});case 2:t=n.a,e=Qi(b(Ki,t.u,r.D));return J(r,{E:t.u,J:e,N:t.ad,W:2});default:return{D:(t=n.a).u,E:Je,J:pe,N:t.ad,W:2}}}),no=b(ht,0,A),ro=t(function(n,r){return s(Ha,n,"0",Au(r))}),to=b(Fa,function(n){return b(ro,4,b(te,no,n))+"-"+b(ro,2,function(n){switch(n){case 0:return 1;case 1:return 2;case 2:return 3;case 3:return 4;case 4:return 5;case 5:return 6;case 6:return 7;case 7:return 8;case 8:return 9;case 9:return 10;case 10:return 11;default:return 12}}(b(re,no,n)))+"-"+b(ro,2,b(ne,no,n))+"T"+b(ro,2,b(ie,no,n))+":"+b(ro,2,b(fe,no,n))+":"+b(ro,2,b(be,no,n))+"."+b(ro,3,b(oe,no,n))+"Z"},oc(14)),eo=function(n){return{$:1,a:n}},uo=function(n){return{$:7,b:n}},ao=$(Cn,i(function(n,r,t,e,u,a,c){return{aO:e,bS:t,bU:c,a_:a,cd:r,bC:u,aG:n}}),b(ta,"title",oa),b(ta,"startDate",oa),b(ta,"endDate",oa),b(ta,"classrooms",uo(oa)),b(ta,"teachers",uo(oa)),b(ta,"groups",uo(oa)),b(ta,"eventId",oa)),co=b(Ju,function(n){return{bV:n}},b(ta,"events",uo(ao))),io=b(Ju,function(n){return{ca:n}},b(ta,"planning",co)),oo=t(function(n,r){n:for(;;){if(-2===r.$)return pe;var t=r.b,e=r.c,u=r.d,a=r.e;switch(b(Ct,n,t)){case 0:n=n,r=u;continue n;case 1:return Ye(e);default:n=n,r=a;continue n}}}),fo=function(n){if(-1===n.$&&-1===n.d.$&&-1===n.e.$){if(-1!==n.e.d.$||n.e.d.a){n.a,u=n.b,a=n.c;var r=n.d,t=(r.a,i=r.b,o=r.c,f=r.d,b=r.e,n.e);t.a,v=t.b,l=t.c,e=t.d,m=t.e;return d(At,1,u,a,d(At,0,i,o,f,b),d(At,0,v,l,e,m))}n.a;var e,u=n.b,a=n.c,c=n.d,i=(c.a,c.b),o=c.c,f=c.d,b=c.e,s=n.e,v=(s.a,s.b),l=s.c,h=((e=s.d).a,e.b),$=e.c,g=e.d,p=e.e,m=s.e;return d(At,0,h,$,d(At,1,u,a,d(At,0,i,o,f,b),g),d(At,1,v,l,p,m))}return n},bo=function(n){if(-1===n.$&&-1===n.d.$&&-1===n.e.$){if(-1!==n.d.d.$||n.d.d.a){n.a,u=n.b,a=n.c;var r=n.d,t=(r.a,i=r.b,o=r.c,r.d),e=(h=r.e,n.e);e.a,g=e.b,p=e.c,m=e.d,y=e.e;return d(At,1,u,a,d(At,0,i,o,t,h),d(At,0,g,p,m,y))}n.a;var u=n.b,a=n.c,c=n.d,i=(c.a,c.b),o=c.c,f=c.d,b=(f.a,f.b),s=f.c,v=f.d,l=f.e,h=c.e,$=n.e,g=($.a,$.b),p=$.c,m=$.d,y=$.e;return d(At,0,i,o,d(At,1,b,s,v,l),d(At,1,u,a,h,d(At,0,g,p,m,y)))}return n},so=i(function(n,r,t,e,u,a,c){if(-1!==a.$||a.a){n:for(;;){if(-1===c.$&&1===c.a){if(-1===c.d.$){if(1===c.d.a){c.a,c.d.a;return bo(r)}break n}c.a,c.d;return bo(r)}break n}return r}a.a;var i=a.b,o=a.c,f=a.d,b=a.e;return d(At,t,i,o,f,d(At,0,e,u,b,c))}),vo=function(n){if(-1===n.$&&-1===n.d.$){var r=n.a,t=n.b,e=n.c,u=n.d,a=u.a,c=u.d,i=n.e;if(1===a){if(-1!==c.$||c.a){var o=fo(n);if(-1===o.$){var f=o.a,b=o.b,s=o.c,v=o.d,l=o.e;return d(Tt,f,b,s,vo(v),l)}return yt}c.a;return d(At,r,t,e,vo(u),i)}return d(At,r,t,e,vo(u),i)}return yt},lo=t(function(n,r){if(-2===r.$)return yt;var t=r.a,e=r.b,u=r.c,a=r.d,c=r.e;if(_(n,e)<0){if(-1===a.$&&1===a.a){a.a;var i=a.d;if(-1!==i.$||i.a){var o=fo(r);if(-1===o.$){var f=o.a,s=o.b,v=o.c,l=o.d,$=o.e;return d(Tt,f,s,v,b(lo,n,l),$)}return yt}i.a;return d(At,t,e,u,b(lo,n,a),c)}return d(At,t,e,u,b(lo,n,a),c)}return b(ho,n,h(so,n,r,t,e,u,a,c))}),ho=t(function(n,r){if(-1===r.$){var t=r.a,e=r.b,u=r.c,a=r.d,c=r.e;if(E(n,e)){var i=function(n){for(;;){if(-1!==n.$||-1!==n.d.$)return n;n=n.d}}(c);if(-1===i.$){var o=i.b,f=i.c;return d(Tt,t,o,f,a,vo(c))}return yt}return d(Tt,t,e,u,a,b(lo,n,c))}return yt}),$o=t(function(n,r){var t=b(lo,n,r);if(-1!==t.$||t.a)return t;t.a;var e=t.b,u=t.c,a=t.d,c=t.e;return d(At,1,e,u,a,c)}),go=e(function(n,r,t){var e=r(b(oo,n,t));if(e.$)return b($o,n,t);var u=e.a;return s(xt,n,u,t)}),po=function(n){return!n.$},mo=t(function(n,r){return{$:4,a:n,b:r}}),yo=function(n){return{$:3,a:n}},wo=function(n){return{$:0,a:n}},Ao={$:2},Co={$:1},To=function(n){return 1===n.$},jo=function(n){return{$:0,b:"text",a:n}},xo=Tn,ko=St,Lo=e(function(n,r,t){return ko({bM:t,bW:(e=b(ta,"data",io),jo(function(n){var r=b(xo,e,n.bM);if(1===r.$){var t=r.a;return uu(Eu(t))}var u=r.a;return au(u)})),b_:r,b5:"POST",ci:pe,ck:n,cm:!1});var e}),Eo=e(function(n,r,t){return n(r(t))}),So=Q,Oo=t(function(n,r){return Mu(b(So,b(Eo,b(Eo,We,n),uu),b(Qe,b(Eo,b(Eo,We,n),au),r)))}),_o=t(function(n,r){return b(Oo,n,b(rt,r,pe))}),Do=t(function(n,r){return{$:1,a:n,b:r}}),Io=t(function(n,r){return Dn(s(kt,function(n){return t(function(r,t){return t.push(In(n(r))),t})}(n),[],r))}),No=function(n){return Dn(s(kt,t(function(n,r){var t=n.a,e=n.b;return s(Nn,t,e,r)}),{},n))},Mo=t(function(n,r){var t,e=r.ax,u=r.aH,a=r.ay,c=r.av,i=No(j([N("from",zi(e)),N("to",zi(u)),N("grs",b(Io,zi,a)),N("collection",zi(c))]));return t=No(j([N("query",zi(n)),N("variables",i)])),b(Do,"application/json",b(ku,0,t))}),qo=e(function(n,r,t){return b(_o,eo,s(Lo,"https://cyberplanning.fr/graphql/",A,b(Mo,"query day_planning($collection:Collection!,$grs:[String],$to:DateTime!,$from:DateTime!){planning(collection:$collection,affiliationGroups:$grs,toDate:$to,fromDate:$from){events{title startDate endDate classrooms teachers groups eventId}}}",{av:"CYBER",ax:n,ay:t,aH:r})))}),Jo=t(function(n,r){return b(mt,7,(b(mt,7,r)||7)+7-function(n){switch(n){case 0:return 1;case 1:return 2;case 2:return 3;case 3:return 4;case 4:return 5;case 5:return 6;default:return 7}}(n))}),Go=t(function(n,r){return Ft(n)+b(qt,n,r)+1}),Fo=b(Fa,Zt,function(n){return n.bc}),Bo=b(Fa,Fo,function(n){return(Rt(n)+2)/3|0}),Ro=t(function(n,r){var t,e,u=r;switch(n){case 0:return e=Wt(r),Ft(e)+1;case 1:return b(Go,Wt(r),(t=Bo(r),Pt(3*t-2)));case 2:return b(Go,Wt(r),Fo(r));case 3:case 4:return u-b(Jo,0,r);case 5:return u-b(Jo,1,r);case 6:return u-b(Jo,2,r);case 7:return u-b(Jo,3,r);case 8:return u-b(Jo,4,r);case 9:return u-b(Jo,5,r);case 10:return u-b(Jo,6,r);default:return r}}),Po=e(function(n,r,t){return s(le,r,b(Ro,n,b(ae,r,t)),0)}),Yo=e(function(n,r,t){switch(n){case 15:return t;case 14:return s(le,r,b(ae,r,t),v(se,b(ie,r,t),b(fe,r,t),b(be,r,t),0));case 13:return s(le,r,b(ae,r,t),v(se,b(ie,r,t),b(fe,r,t),0,0));case 12:return s(le,r,b(ae,r,t),v(se,b(ie,r,t),0,0,0));case 11:return s(Po,11,r,t);case 2:return s(Po,2,r,t);case 0:return s(Po,0,r,t);case 1:return s(Po,1,r,t);case 3:return s(Po,3,r,t);case 4:return s(Po,4,r,t);case 5:return s(Po,5,r,t);case 6:return s(Po,6,r,t);case 7:return s(Po,7,r,t);case 8:return s(Po,8,r,t);case 9:return s(Po,9,r,t);default:return s(Po,10,r,t)}}),Ho=e(function(n,r,t){var e=s(Yo,n,r,t);return E(e,t)?t:v(he,n,1,r,e)}),Wo=t(function(n,r){var t=to(s(Ho,10,gt,s(Ho,2,gt,v(he,11,1,gt,n)))),e=to(s(Yo,4,gt,s(Yo,2,gt,n)));return s(qo,e,t,j([r]))}),Zo=Hn,Vo=Zo(A),zo=t(function(n,r){var t=b(Na,r,n.aL),e=E(b(te,gt,t.Y),b(te,gt,n.aL.Y))?t:b(me,t.ah,t.Y),u=E(b(re,gt,t.Y),b(re,gt,n.aL.Y))?N(Vo,!1):N(b(Wo,t.Y,n.bv.S),!0),a=u.a;return N(J(n,{aL:e,a8:u.b}),a)}),Uo=t(function(n,r){return Qa(n.F-r.F)}),Qo=t(function(n,r){for(;;){if(!r.b)return pe;var t=r.a,e=r.b;if(n(t))return Ye(t);n=n,r=e}}),Ko=Qr("blur"),Xo=qn,nf=(La=Ot,z(function(n){n(Z(La(Date.now())))})),rf=t(function(n,r){switch(n.$){case 0:return N(r,Vo);case 2:var t=n.a,e=_(r.bx.bI,598)<0?2:0;return N(J(r,{aL:b(me,e,t),aS:Ye(t)}),b(Wo,t,r.bv.S));case 1:var u=n.a;if(u.$){var a=u.a;return N(J(r,{aV:Ye(a),a8:!1}),Vo)}var c=u.a;return N(J(r,{aR:Ye((h=c.ca.bV,b(Ue,Ji,h))),aV:pe,a8:!1}),b(Oo,oi(Gi),Ko("groupSelect")));case 3:var i=n.a;return N(J(r,{bv:b(bc,{O:"Cyber1 TD2",S:"12"},b(Qo,function(n){return E(n.S,i)},Ja))}),Ui(i));case 8:var o=n.a;return N(J(r,{aL:b(Na,o,r.aL)}),Vo);case 6:return b(zo,r,qa);case 5:return b(zo,r,Ma);case 4:var f=n.a;return N(J(r,{bx:{a$:Jt(f.bF.a$),bI:Jt(f.bF.bI)}}),Vi(0));case 7:var s=n.a;return N(J(r,{bu:b(Wi,s,r.bu)}),function(){switch(s){case 39:return b(qu,St,We(Bi));case 37:return b(qu,St,We(Fi));default:return Vo}}());case 9:var v=n.a,d=b(Xi,v,r.bA),l=function(){if(2===d.W&&b(Uo,d.D,d.E)>70){var n=d.J;if(n.$)return Vo;if(n.a){n.a;return b(qu,St,We(Fi))}n.a;return b(qu,St,We(Bi))}return Vo}();return N(J(r,{bA:d}),l);case 10:t=b(bc,Ot(0),r.aS);return b(zo,r,{$:5,a:t});case 11:i=n.a;return N(J(r,{bv:b(bc,{O:"Cyber1 TD2",S:"12"},b(Qo,function(n){return E(n.S,i)},Ja))}),b(qu,Ri,nf));case 12:n.a;return r.a8||r.a9?N(r,Vo):N(J(r,{a8:!0,a9:!0}),Zo(j([b(Wo,r.aL.Y,r.bv.S),b(qu,Pi,Xo(1e3))])));default:return N(J(r,{a9:!1}),Vo)}var h}),tf=gt,ef=t(function(n,r){switch(b(mt,7,b(zt,b(Qt,n,r),1440))){case 0:return 3;case 1:return 4;case 2:return 5;case 3:return 6;case 4:return 0;case 5:return 1;default:return 2}}),uf=function(n){var r=b(ef,tf,n);return function(){switch(r){case 0:return"Lundi";case 1:return"Mardi";case 2:return"Mercredi";case 3:return"Jeudi";case 4:return"Vendredi";case 5:return"Samedi";default:return"Dimanche"}}()+" "+Au(b(ne,tf,n))},af={$:3},cf={$:2},of=ar("button"),ff=ar("div"),bf=ar("span"),sf=ur,vf=t(function(n,r){return b(br,n,zi(r))}),df=vf("className"),lf=or,hf=t(function(n,r){return b(lf,n,{$:0,a:r})}),$f=function(n){return b(hf,"click",Fu(n))},gf=b(ff,j([df("calendar--time-gutter")]),A),pf=function(n){return b(ff,j([df("calendar--day-header")]),j([gf,function(n){return b(ff,j([df("calendar--date-header")]),j([b(of,j([df("calendar--navigations-week"),$f(af)]),j([sf("<<")])),b(ff,j([df("calendar--date-header-content")]),j([b(of,j([df("calendar--navigations-day"),$f(Ma)]),j([sf("<")])),b(bf,j([df("calendar--date")]),j([sf(uf(n))])),b(of,j([df("calendar--navigations-day"),$f(qa)]),j([sf(">")]))])),b(of,j([df("calendar--navigations-week"),$f(cf)]),j([sf(">>")]))]))}(n)]))},mf=u(function(n,r,t,e){return{f:r,b4:n,b6:t,cg:e}}),yf=et(1/0),wf=t(function(n,r){var t=r.a,e=r.b;return N(n(t),e)}),Af=tt,Cf=b(Fa,function(n){return b(Af,{aM:!1,bd:!1},n)},bc(/.^/)),Tf=(Ea=j([N("[\xe0-\xe6]","a"),N("[\xc0-\xc6]","A"),N("\xe7","c"),N("\xc7","C"),N("[\xe8-\xeb]","e"),N("[\xc8-\xcb]","E"),N("[\xec-\xef]","i"),N("[\xcc-\xcf]","I"),N("\xf1","n"),N("\xd1","N"),N("[\xf2-\xf6]","o"),N("[\xd2-\xd6]","O"),N("[\xf9-\xfc]","u"),N("[\xd9-\xdc]","U"),N("\xfd","y"),N("\xff","y"),N("\xdd","Y")]),b(Ue,wf(Cf),Ea)),jf=function(n){return n.toLowerCase()},xf=function(n){return n.trim()},kf=b(Fa,function(n){if(Zu(n))return n;return s(kt,function(n){var r=n.a,t=n.b;return b(yf,r,function(n){return t})},n,Tf)},function(n){return jf(s(yf,Cf("[_-\\s]+"),oi("_"),s(yf,Cf("([a-z\\d])([A-Z]+)"),b(Fa,function(n){return n.cg},b(Fa,Ta(St),Cu("_"))),xf(n))))}),Lf=e(function(n,r,t){return u=b(be,gt,e=n),a=b(fe,gt,e),((3600*b(ie,gt,e)+60*a+u)/86400-r)/(t-r);var e,u,a}),Ef=pn,Sf=t(function(n,r){return b(sr,function(n){return/^(on|formAction$)/i.test(n)?"data-"+n:n}(n),vr(r))}),Of=fr,_f=u(function(n,r,t,e){var u=100*s(Lf,n,7/24,20/24),a=Ef(u)+"%",c=100*s(Lf,r,7/24,20/24),i=Ef(c-u)+"%";return j([b(Of,"top",a),b(Of,"height",i),b(Of,"left","2%"),b(Of,"width","96%"),b(Of,"position","absolute"),b(Of,"background-color",t),b(Sf,"data-title",e),b(Sf,"data-color",t)])}),Df=t(function(n,r){return s(ze,t(function(r,t){return n(r)?b(ot,r,t):t}),A,r)}),If=function(n){return n.b},Nf=function(n){return df(b(Cu," ",b(Ue,Oe,b(Df,If,n))))},Mf=e(function(n,r,t){var e=kf(n.aG),u=n.ce,a=n.bT,c=n.aQ,i=v(_f,u,a,c,e);return G(j([Nf(b(ot,N(r?"":"calendar--event calendar--event-starts-and-ends",!0),t))]),i)}),qf=function(n){return{$:7,a:n}},Jf=t(function(n,r){if(r.$)return pe;var t=r.a;return Ye(n(t))}),Gf=e(function(n,r,t){var e,u,a,c=n.bD,i=b(bc,!1,b(Jf,Nt(c),r)),o=j([N("calendar--event-content",!0),N("calendar--event-content--is-selected",i)]);return b(ff,G(j([(a=qf(c),b(hf,"mouseenter",Fu(a))),function(n){return b(hf,"mouseleave",Fu(n))}((u=c,{$:8,a:u})),$f(qf(c))]),s(Mf,n,t,o)),j([b(ff,j([df("calendar--event-title")]),j([(e=n.aG,sf(e))])),b(ff,j([df("calendar--event-sub")]),j([sf(b(Cu,",",n.aO))])),b(ff,j([df("calendar--event-sub")]),j([sf(b(Cu,",",n.bC))])),b(ff,j([df("calendar--event-sub")]),j([sf(b(Cu,",",n.a_))]))]))}),Ff=e(function(n,r,t){return 1===t?pe:Ye(s(Gf,n,r,t))}),Bf=e(function(n,r,t){var e=_t(n),u=_t(r),a=_t(t);return _(e,a)<1&&_(u,a)>-1}),Rf=u(function(n,r,t,e){var u=v(he,15,1,gt,e),a=s(Ho,t,gt,u),c=s(Yo,t,gt,u),i=s(Bf,c,a,r);return s(Bf,c,a,n)&&i?0:1}),Pf=e(function(n,r,t){var e=v(Rf,t.ce,t.bT,11,n);return s(Ff,t,r,e)}),Yf=t(function(n,r){return s(pa,e(function(r,t,e){return b(n,r,t)?s(xt,r,t,e):e}),wt,r)}),Hf=function(n){if(n.b){var r=n.a;n.b;return Ye(r)}return pe},Wf=t(function(n,r){var e=s(Yo,11,pt,r);return Hf(dt(b(Yf,t(function(n,r){return E(r,e)}),n)))}),Zf=function(n){return j([n])},Vf=u(function(n,r,t,e){return G(function(){var n=b(Wf,e,t);if(n.$)return A;var r=n.a;return Zf(b(ff,j([df("calendar--jour-ferie")]),Zf(sf(r))))}(),b(Ta,b(Pf,t,r),n))}),zf=function(n){return b(ff,j([df("calendar--time-slot")]),A)},Uf=function(n){return b(ff,j([df("calendar--time-slot-group")]),j([zf(),zf()]))},Qf=j(["7:00","8:00","9:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00"]),Kf=u(function(n,r,e,u){return b(ff,j([df("calendar--day-slot")]),b(t(function(n,r){return G(r,n)}),v(Vf,n,r,e,u),b(Ue,Uf,Qf)))}),Xf=function(n){return b(ff,j([df("calendar--time-slot-group")]),j([function(n){return b(ff,j([df("calendar--hour-slot")]),j([b(bf,j([df("calendar--time-slot-text")]),j([sf(n)]))]))}(n),b(ff,j([df("calendar--time-slot")]),A)]))},nb=function(n){return b(ff,j([df("calendar--time-gutter")]),b(Ue,Xf,Qf))},rb=u(function(n,r,t,e){return b(ff,j([df("calendar--day")]),j([pf(t),b(ff,j([df("calendar--day-content")]),j([nb(),b(ff,j([df("calendar--day")]),j([v(Kf,n,r,t,e)]))]))]))}),tb=c(function(n,r,t,e,u,a){for(;;){if(!(_(_t(a),_t(e))<0))return Ee(u);var c=n,i=r,o=t,f=e,s=b(ot,a,u),d=v(he,n,r,t,a);n=c,r=i,t=o,e=f,u=s,a=d}}),eb=a(function(n,r,t,e,u){return l(tb,n,b(lt,1,r),t,u,A,s(Ho,n,t,e))}),ub=u(function(n,r,t,e){var u=b(Ue,Uf,Qf),a=v(Vf,n,r,e,t);return b(ff,j([df("calendar--day")]),j([b(ff,j([df("calendar--day-slot")]),G(u,a))]))}),ab=a(function(n,r,t,e,u){var a=b(Ue,s(ub,n,r,u),e),c=nb();return b(ff,j([df("calendar--week-content")]),b(ot,c,a))}),cb=function(n){return b(ff,j([df("calendar--date-header")]),j([b(bf,j([df("calendar--date")]),j([sf(uf(n))]))]))},ib=function(n){return b(ff,j([df("calendar--week-header")]),j([function(n){return b(ff,j([df("calendar--dates-header")]),j([gf,b(ff,j([df("calendar--dates")]),b(Ue,cb,n))]))}(n)]))},ob=a(function(n,r,t,e,u){return b(ff,j([df("calendar--week")]),j([ib(u),d(ab,n,r,t,u,e)]))}),fb=u(function(n,r,t,e){return d(ob,n,r,t,e,(u=s(Yo,4,tf,v(he,11,2,tf,t)),d(eb,11,1,tf,u,s(Ho,9,tf,u))));var u}),bb=u(function(n,r,t,e){return d(ob,n,r,t,e,(u=v(he,15,1,tf,s(Yo,11,tf,t)),d(eb,11,1,tf,s(Yo,4,tf,u),s(Ho,4,tf,u))));var u}),sb=t(function(n,r){var t=r.Y,e=r.ah,u=r.as,a=r.az,c=function(){switch(e){case 0:return v(fb,n,u,t,a);case 1:return v(bb,n,u,t,a);default:return v(rb,n,u,t,a)}}();return b(ff,j([df("calendar--calendar")]),j([c]))}),vb=function(n){return{$:8,a:n}},db=function(n){return{$:9,a:n}},lb=function(n){return n.a},hb=function(n){return E(lb(n.j),n.f)},$b=function(n){var r=n.ab;return E(lb(r.j),r.f)},gb=ar("iframe"),pb=function(n){var r,t,u=n.B,a=b(Cu,"&",s(pa,e(function(n,r,t){return b(ot,n+"="+r,t)}),A,n.x));return b(gb,j([(t=0,b(sr,"width",Au(t))),function(n){return b(sr,"height",Au(n))}(0),(r="https://www.youtube.com/embed/"+u+"?rel=0&controls=0&showinfo=0&autoplay=1&"+a,b(vf,"src",vr(r))),b(Sf,"frameborder","0"),b(Sf,"allow","autoplay; encrypted-media"),b(Sf,"allowfullscreen","1")]),A)},mb=j([{H:"Taper le Konami code",I:"",L:13,M:55,U:8,V:42,aG:"ChickenSong",Z:4},{H:"Affiche ce message",I:"",L:16,M:0,U:12,V:30,aG:"Help",Z:5},{H:"reverse(KonamiCode)",I:"",L:11,M:15,U:8,V:0,aG:"Soviet National Anthem 31 ",Z:6},{H:"Type S A M B A",I:"",L:19,M:0,U:17,V:0,aG:"Samba \u{1f389}",Z:7}]),yb=t(function(n,r){var t=s(Ho,r.Z,gt,s(Yo,4,gt,n)),e=v(he,13,r.V,gt,v(he,12,r.U,gt,t)),u=v(he,13,r.M,gt,v(he,12,r.L,gt,t));return{aO:j([r.H]),aQ:Vc(r.aG),bT:u,a_:A,ce:e,bC:j([r.I]),aG:r.aG,bD:r.aG}}),wb=function(n){return{$:2,a:n}},Ab=function(n){return{$:0,a:n}},Cb=t(function(n,r){return{F:n,G:r}}),Tb=t(function(n,r){return{u:r,ad:n}}),jb={$:4},xb=s(Gu,Tb,b(ta,"identifier",ea),s(Gu,Cb,b(ta,"clientX",jb),b(ta,"clientY",jb))),kb=t(function(n,r){return s(ze,ta,r,n)}),Lb=b(kb,j(["changedTouches","0"]),xb),Eb=t(function(n,r){return b(lf,n,{$:1,a:r})}),Sb=e(function(n,r,t){return b(Eb,n,b(Ju,function(n){return N(n,!0)},b(Ju,t,b(Ju,r,Lb))))}),Ob=function(n){return b(Sb,"touchend",n)},_b=function(n){return b(Sb,"touchstart",n)},Db=function(n){var r=s(Ha,2,"0",Au(b(fe,gt,n)));return Au(b(ie,gt,n))+":"+r},Ib=function(n){if(n.$)return A;var r,t,e=n.a;return j([b(ff,j([df("tooltip--event"),(t=e.aQ,b(Of,"background-color",t))]),G(j([b(ff,j([df("tooltip--event-title")]),j([sf(e.aG)])),b(ff,j([Nf(j([N("tooltip--event-sub",!0),N("tooltip--event-hours",!0)]))]),j([function(n){return sf(Db(n.ce)+" - "+Db(n.bT))}(e)]))]),(r=j([b(Cu,",",e.aO),b(Cu,",",e.bC),b(Cu,",",e.a_)]),b(Ue,function(n){return b(ff,j([df("tooltip--event-sub")]),j([sf(n)]))},b(Df,function(n){return!Zu(n)},r)))))])},Nb=t(function(n,r){var t=function(){if(n.$)return A;var t=n.a;return Ib(Hf(b(Df,function(n){return E(n.bD,t)},r)))}();return b(ff,j([df("tooltip")]),t)}),Mb={$:10},qb=t(function(n,r){var t=n?j([b(of,j([df("main--navigatiors-button"),$f(Fi)]),j([sf("back")])),b(of,j([df("main--navigatiors-button"),$f(Bi)]),j([sf("next")]))]):A;return b(ff,j([df("main--paginators")]),G(t,j([b(of,j([df("main--navigatiors-button"),$f(Mb)]),j([sf("today")])),function(n){return b(of,j([Nf(j([N("main--navigatiors-button",!0),N("main--navigatiors-reload",!0),N("loop",n)])),b(Of,"font-size","1.2em"),$f(ia("ok"))]),j([b(bf,A,j([sf("\u27f3")]))]))}(r)])))}),Jb=function(n){return{$:3,a:n}},Gb=ar("option"),Fb=vf("value"),Bb=function(n){return b(Gb,j([Fb(n.S)]),j([sf(n.O)]))},Rb=ar("select"),Pb=vf("id"),Yb=Dn,Hb=t(function(n,r){return b(br,n,Yb(r))})("multiple"),Wb=b(kb,j(["target","value"]),oa),Zb=ar("h2"),Vb=function(n){return b(ff,j([df("main--month-title")]),j([b(Zb,A,j([sf((r=n,t=Au(b(te,gt,r)),e=b(re,gt,r),function(){switch(e){case 0:return"Janvier";case 1:return"F\xe9vrier";case 2:return"Mars";case 3:return"Avril";case 4:return"Mai";case 5:return"Juin";case 6:return"Juillet";case 7:return"Ao\xfbt";case 8:return"Septembre";case 9:return"Octobre";case 10:return"Novembre";default:return"D\xe9cembre"}}()+" "+t))]))]));var r,t,e},zb=u(function(n,r,t,e){return b(ff,j([df("main--toolbar")]),j([b(qb,t,e),Vb(r),function(n){return b(ff,j([df("main--selector")]),j([b(Rb,j([df("main--selector-select"),Pb("groupSelect"),b(hf,"change",b(Ju,Jb,Wb)),Fb(n.S),Hb(!1)]),b(Ue,Bb,Ja))]))}(n)]))}),Ub=cr,Qb=Br({b2:function(n){return N(Fe,b(qu,Be,ra))},ch:function(n){return Da(j([fa(ca),ba(ia),_a(b(Ju,aa,ua))]))},cj:rf,cl:function(n){var r,t,e,u=(r=n.bu,b(ff,j([b(Of,"height","0")]),b(Ue,pb,b(Df,hb,r.R)))),a=$b(n.bu)?(t=n.aL.Y,b(Ue,yb(t),mb)):b(bc,A,n.aR),c=G(j([b(_b,Ab,e=db),b(Ob,wb,e)]),G(j([df("main--container")]),function(n){return G($b(n)?j([df("fun-help")]):A,b(Ue,b(Fa,function(n){return n.t},df),b(Df,hb,n.R)))}(n.bu)));return{bM:j([b(ff,c,j([v(zb,n.bv,n.aL.Y,!n.aL.ah,n.a9),b(ff,j([df("main--calendar")]),j([b(Ub,vb,b(sb,a,n.aL))])),function(n){var r,t=(r=n.aV).$?n.a8?N("Loading...",!0):N("",!1):N(function(n){switch(n.$){case 0:return"BadUrl";case 1:return"Timeout";case 2:return"Network Error";case 3:return"BadStatus";default:return"BadPayload"}}(r.a),!0),e=t.a,u=t.b;return b(ff,j([df("main--message "+(u?"":"hidden"))]),j([sf(e)]))}(n),b(Nb,n.aL.ac,a),u]))]),aG:"Planning - "+n.bv.O}}});Sa={Main:{init:Qb(Fu(0))(0)}},n.Elm?function n(r,t){for(var e in t)e in r?"init"==e?L(6):n(r[e],t[e]):r[e]=t[e]}(n.Elm,Sa):n.Elm=Sa}(this)},function(n,r,t){t(3),n.exports=t(10)},,,,,,,,function(n,r,t){"use strict";t.r(r);t(11),t(13),t(16),t(18),t(20);var e=t(1),u=e.Elm.Main.init({node:document.getElementById("root")});u.ports.save.subscribe(function(n){localStorage.setItem("group",n),u.ports.saved.send("ok")}),u.ports.doload.subscribe(function(){u.ports.load.send(localStorage.getItem("group")||"")});var a=["flag","groupCollapsed","Th3_B4s1c_L0g_0f_D3a7h","info","groupEnd"];console[a[1]](a[0]),console[a[3]](a[2]),console[a[4]](a[0])},function(n,r,t){},,function(n,r,t){},,,function(n,r,t){},,function(n,r,t){},,function(n,r,t){}],[[2,2,1]]]); \ No newline at end of file diff --git a/build/static/js/main.ec1c84de.chunk.js b/build/static/js/main.ec1c84de.chunk.js new file mode 100644 index 0000000..3641027 --- /dev/null +++ b/build/static/js/main.ec1c84de.chunk.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,function(){!function(n){"use strict";function r(n,r,t){return t.a=n,t.f=r,t}function t(n){return r(2,n,function(r){return function(t){return n(r,t)}})}function e(n){return r(3,n,function(r){return function(t){return function(e){return n(r,t,e)}}})}function u(n){return r(4,n,function(r){return function(t){return function(e){return function(u){return n(r,t,e,u)}}}})}function a(n){return r(5,n,function(r){return function(t){return function(e){return function(u){return function(a){return n(r,t,e,u,a)}}}}})}function c(n){return r(6,n,function(r){return function(t){return function(e){return function(u){return function(a){return function(c){return n(r,t,e,u,a,c)}}}}}})}function i(n){return r(7,n,function(r){return function(t){return function(e){return function(u){return function(a){return function(c){return function(i){return n(r,t,e,u,a,c,i)}}}}}}})}function o(n){return r(8,n,function(r){return function(t){return function(e){return function(u){return function(a){return function(c){return function(i){return function(o){return n(r,t,e,u,a,c,i,o)}}}}}}}})}function f(n,r,t){return 2===n.a?n.f(r,t):n(r)(t)}function b(n,r,t,e){return 3===n.a?n.f(r,t,e):n(r)(t)(e)}function s(n,r,t,e,u){return 4===n.a?n.f(r,t,e,u):n(r)(t)(e)(u)}function v(n,r,t,e,u,a){return 5===n.a?n.f(r,t,e,u,a):n(r)(t)(e)(u)(a)}function l(n,r,t,e,u,a,c){return 6===n.a?n.f(r,t,e,u,a,c):n(r)(t)(e)(u)(a)(c)}function d(n,r,t,e,u,a,c,i){return 7===n.a?n.f(r,t,e,u,a,c,i):n(r)(t)(e)(u)(a)(c)(i)}function h(n,r,t,e,u,a,c,i,o){return 8===n.a?n.f(r,t,e,u,a,c,i,o):n(r)(t)(e)(u)(a)(c)(i)(o)}var g=e(function(n,r,t){for(var e=Array(n),u=0;u=0;e--)r=f(n,t[e],r);return r}),w={$:0};function k(n,r){return{$:1,a:n,b:r}}var T=t(k);function A(n){for(var r=w,t=n.length;t--;)r=k(n[t],r);return r}function E(n){for(var r=[];n.b;n=n.b)r.push(n.a);return r}var j=e(function(n,r,t){for(var e=[];r.b&&t.b;r=r.b,t=t.b)e.push(f(n,r.a,t.a));return A(e)});function x(n){throw Error("https://github.com/elm/core/blob/1.0.0/hints/"+n+".md")}function C(n,r){for(var t,e=[],u=O(n,r,0,e);u&&(t=e.pop());u=O(t.a,t.b,0,e));return u}function O(n,r,t,e){if(t>100)return e.push(P(n,r)),!0;if(n===r)return!0;if("object"!==typeof n||null===n||null===r)return"function"===typeof n&&x(5),!1;for(var u in n.$<0&&(n=Rr(n),r=Rr(r)),n)if(!O(n[u],r[u],t+1,e))return!1;return!0}var N=t(C);function D(n,r,t){if("object"!==typeof n)return n===r?0:n0&&n<0||t<0&&n>0?t+n:t}),I=Math.ceil,J=Math.floor,W=Math.round,R=Math.log;function F(n){return{$:0,a:n}}function V(n){return{$:1,a:n}}function Y(n){return{$:2,b:n,c:null}}var K=t(function(n,r){return{$:3,b:n,d:r}}),Q=t(function(n,r){return{$:4,b:n,d:r}}),z=0;function U(n){var r={$:0,e:z++,f:n,g:null,h:[]};return en(r),r}function X(n){return Y(function(r){r(F(U(n)))})}function Z(n,r){n.h.push(r),en(n)}var nn=t(function(n,r){return Y(function(t){Z(n,r),t(F(G))})}),rn=!1,tn=[];function en(n){if(tn.push(n),!rn){for(rn=!0;n=tn.shift();)un(n);rn=!1}}function un(n){for(;n.f;){var r=n.f.$;if(0===r||1===r){for(;n.g&&n.g.$!==r;)n.g=n.g.i;if(!n.g)return;n.f=n.g.b(n.f.a),n.g=n.g.i}else{if(2===r)return void(n.f.c=n.f.b(function(r){n.f=r,en(n)}));if(5===r){if(0===n.h.length)return;n.f=n.f.b(n.h.shift())}else n.g={$:3===r?0:1,b:n.f.b,i:n.g},n.f=n.f.d}}}var an=t(function(n,r){return n+r}),cn=e(function(n,r,t){for(var e=t.length,u=0;uc||c>56319||(a+=t[u],u++),r=f(n,_(a),r)}return r}),on=e(function(n,r,t){for(var e=t.length;e--;){var u=t[e],a=t.charCodeAt(e);56320>a||a>57343||(u=t[--e]+u),r=f(n,_(u),r)}return r}),fn=t(function(n,r){return r.split(n)}),bn=t(function(n,r){return r.join(n)}),sn=e(function(n,r,t){return t.slice(n,r)}),vn=t(function(n,r){for(var t=r.length;t--;){var e=r[t],u=r.charCodeAt(t);if(56320>u||u>57343||(e=r[--t]+e),!n(_(e)))return!1}return!0}),ln=t(function(n,r){return 0===r.indexOf(n)});function dn(n){return n+""}var hn=t(function(n,r){return{$:10,d:n,b:r}});function gn(n,r){return{$:13,f:n,g:r}}var $n=t(function(n,r){return{$:14,b:r,h:n}}),mn=t(function(n,r){return gn(n,[r])}),pn=e(function(n,r,t){return gn(n,[r,t])}),yn=u(function(n,r,t,e){return gn(n,[r,t,e])}),wn=o(function(n,r,t,e,u,a,c,i){return gn(n,[r,t,e,u,a,c,i])}),kn=t(function(n,r){try{return An(n,JSON.parse(r))}catch(n){return Se(f(qe,"This is not valid JSON! "+n.message,Dn(r)))}}),Tn=t(function(n,r){return An(n,Mn(r))});function An(n,r){switch(n.$){case 3:return"boolean"===typeof r?_e(r):xn("a BOOL",r);case 2:return"number"!==typeof r?xn("an INT",r):-21474836470&&vr(t,1,e,b));case 4:for(var s=n.j,v=r.j,l=!1,d=n.k;4===d.$;)l=!0,"object"!==typeof s?s=[s,d.j]:s.push(d.j),d=d.k;for(var h=r.k;4===h.$;)l=!0,"object"!==typeof v?v=[v,h.j]:v.push(h.j),h=h.k;return l&&s.length!==v.length?void vr(t,0,e,r):((l?function(n,r){for(var t=0;ti?vr(t,6,e,{v:i,i:c-i}):c0||c.length>0||C)&&vr(t,8,e,{w:u,x:c,y:C})}var mr="_elmW6BL";function pr(n,r,t,e,u,a){var c=n[t];if(!c)return a.push({r:u,A:c={c:0,z:e,r:u,s:void 0}}),void(n[t]=c);if(1===c.c){a.push({r:u,A:c}),c.c=2;var i=[];return lr(c.z,e,i,c.r),c.r=u,void(c.s.s={w:i,A:c})}pr(n,r,t+mr,e,u,a)}function yr(n,r,t,e,u){var a=n[t];if(a){if(0===a.c){a.c=2;var c=[];return lr(e,a.z,c,u),void vr(r,9,u,{w:c,A:a})}yr(n,r,t+mr,e,u)}else{var i=vr(r,9,u,void 0);n[t]={c:1,z:e,r:u,s:i}}}function wr(n,r,t,e){return 0===t.length?n:(function n(r,t,e,u){!function r(t,e,u,a,c,i,o){for(var f=u[a],b=f.r;b===c;){var s=f.$;if(1===s)n(t,e.k,f.s,o);else if(8===s)f.t=t,f.u=o,(v=f.s.w).length>0&&r(t,e,v,0,c,i,o);else if(9===s){f.t=t,f.u=o;var v,l=f.s;l&&(l.A.s=t,(v=l.w).length>0&&r(t,e,v,0,c,i,o))}else f.t=t,f.u=o;if(!(f=u[++a])||(b=f.r)>i)return a}var d=e.$;if(4===d){for(var h=e.k;4===h.$;)h=h.k;return r(t,h,u,a,c+1,i,t.elm_event_node_ref)}for(var g=e.e,$=t.childNodes,m=0;mi))return a;c=y}return a}(r,t,e,0,0,t.b,u)}(n,r,t,e),kr(n,t))}function kr(n,r){for(var t=0;t0){var c=u.substring(0,a),i=u.substring(a+2);r=b(qa,c,function(n){return $e(Ba(n)?i+", "+n.a:i)},r)}}return r}(n.getAllResponseHeaders()),bB:n.response}}(n);if(n.status<200||300<=n.status)return t.body=n.responseText,V(Ia(t));var e=r(t);return ke(e)?F(e.a):(t.body=n.responseText,V(f(Ha,e.a,t)))}(e,n.bQ.a))});try{e.open(n.b4,n.cp,!0)}catch(r){return t(V(Ja(n.cp)))}!function(n,r){for(var t=r.bV;t.b;t=t.b)n.setRequestHeader(t.a.a,t.a.b);n.responseType=r.bQ.b,n.withCredentials=r.cs,Ba(r.cm)&&(n.timeout=r.cm.a)}(e,n);var u=n.bB;return e.send(Fa(u)?(e.setRequestHeader("Content-Type",u.a),u.b):u.a),function(){e.abort()}})}),Gr=a(function(n,r,t,e,u){for(var a=n.length,c=r+a<=u.length,i=0;c&&ir?55296===(63488&t.charCodeAt(r))?n(_(t.substr(r,2)))?r+2:-1:n(_(t[r]))?"\n"===t[r]?-2:r+1:-1:-1}),Sr=function(n){return{$:4,a:n}},_r=y,qr=e(function(n,r,e){var u=e.c,a=e.d,c=t(function(r,t){return b(_r,r.$?n:c,t,r.a)});return b(_r,c,b(_r,n,r,a),u)}),Br=1,Lr=0,Hr=T,Ir=function(n){return b(qr,Hr,w,n)},Jr=2,Wr=e(function(n,r,t){for(;;){if(-2===t.$)return r;var e=t.d,u=n,a=b(n,t.b,t.c,b(Wr,n,r,t.e));n=u,r=a,t=e}}),Rr=function(n){return b(Wr,e(function(n,r,t){return f(Hr,P(n,r),t)}),w,n)},Fr=t(function(n,r){return D(n,r)>0?n:r}),Vr=t(function(n,r){return{$:0,a:n,b:r}}),Yr=f(Vr,60,A([{a:60,b:35667420},{a:120,b:35365020},{a:60,b:35143260},{a:120,b:34840860},{a:60,b:34619100},{a:120,b:34306620},{a:60,b:34094940},{a:120,b:33782460},{a:60,b:33570780},{a:120,b:33258300},{a:60,b:33046620},{a:120,b:32734140},{a:60,b:32512380},{a:120,b:32209980},{a:60,b:31988220},{a:120,b:31685820},{a:60,b:31464060},{a:120,b:31151580},{a:60,b:30939900},{a:120,b:30627420},{a:60,b:30415740},{a:120,b:30103260},{a:60,b:29881500},{a:120,b:29579100},{a:60,b:29357340},{a:120,b:29054940},{a:60,b:28833180},{a:120,b:28530780},{a:60,b:28309020},{a:120,b:27996540},{a:60,b:27784860},{a:120,b:27472380},{a:60,b:27260700},{a:120,b:26948220},{a:60,b:26726460},{a:120,b:26424060},{a:60,b:26202300},{a:120,b:25899900},{a:60,b:25678140},{a:120,b:25365660},{a:60,b:25153980},{a:120,b:24841500},{a:60,b:24629820},{a:120,b:24317340},{a:60,b:24095580},{a:120,b:23793180},{a:60,b:23571420},{a:120,b:23269020},{a:60,b:23047260},{a:120,b:22744860},{a:60,b:22523100},{a:120,b:22210620},{a:60,b:21998940},{a:120,b:21686460},{a:60,b:21474780},{a:120,b:21162300},{a:60,b:20940540},{a:120,b:20638140},{a:60,b:20416380},{a:120,b:20113980},{a:60,b:19892220},{a:120,b:19579740},{a:60,b:19368060},{a:120,b:19055580},{a:60,b:18843900},{a:120,b:18531420},{a:60,b:18319740},{a:120,b:18007260},{a:60,b:17785500},{a:120,b:17483100},{a:60,b:17261340},{a:120,b:16958940},{a:60,b:16737180},{a:120,b:16424700},{a:60,b:16213020},{a:120,b:15900540},{a:60,b:15688860},{a:120,b:15376380},{a:60,b:15154620},{a:120,b:14852220},{a:60,b:14630460},{a:120,b:14328060},{a:60,b:14106300},{a:120,b:13803900},{a:60,b:13531740},{a:120,b:13269660},{a:60,b:13007580},{a:120,b:12745500},{a:60,b:12483420},{a:120,b:12221340},{a:60,b:11959260},{a:120,b:11697180},{a:60,b:11435100},{a:120,b:11173020},{a:60,b:10910940},{a:120,b:10638780},{a:60,b:10376700},{a:120,b:10114620},{a:60,b:9852540},{a:120,b:9590460},{a:60,b:9328380},{a:120,b:9066300},{a:60,b:8804220},{a:120,b:8542140},{a:60,b:8280060},{a:120,b:8017980},{a:60,b:7755900},{a:120,b:7483740},{a:60,b:7221660},{a:120,b:6959580},{a:60,b:6697500},{a:120,b:6435420},{a:60,b:6173340},{a:120,b:5911260},{a:60,b:5649180},{a:120,b:5397180},{a:60,b:5125020},{a:120,b:4862940},{a:60,b:4600860},{a:120,b:4338780},{a:60,b:4066620},{a:120,b:3814620},{a:60,b:3542340},{a:120,b:3280320}])),Kr=Yr,Qr=H,zr={$:-2},Ur=zr,Xr=a(function(n,r,t,e,u){return{$:-1,a:n,b:r,c:t,d:e,e:u}}),Zr=M,nt=a(function(n,r,t,e,u){if(-1!==u.$||u.a){if(-1!==e.$||e.a||-1!==e.d.$||e.d.a)return v(Xr,n,r,t,e,u);var a=e.d;return c=e.e,v(Xr,0,e.b,e.c,v(Xr,1,a.b,a.c,a.d,a.e),v(Xr,1,r,t,c,u))}var c,i=u.b,o=u.c,f=u.d,b=u.e;return-1!==e.$||e.a?v(Xr,n,i,o,v(Xr,0,r,t,e,f),b):v(Xr,0,r,t,v(Xr,1,e.b,e.c,e.d,c=e.e),v(Xr,1,i,o,f,b))}),rt=e(function(n,r,t){if(-2===t.$)return v(Xr,0,n,r,zr,zr);var e=t.a,u=t.b,a=t.c,c=t.d,i=t.e;switch(f(Zr,n,u)){case 0:return v(nt,e,u,a,b(rt,n,r,c),i);case 1:return v(Xr,e,u,r,c,i);default:return v(nt,e,u,a,c,b(rt,n,r,i))}}),tt=e(function(n,r,t){var e=b(rt,n,r,t);return-1!==e.$||e.a?e:v(Xr,1,e.b,e.c,e.d,e.e)}),et=e(function(n,r,t){for(;;){if(!t.b)return r;var e=t.b,u=n,a=f(n,t.a,r);n=u,r=a,t=e}}),ut=function(n){return b(et,t(function(n,r){return b(tt,n.a,n.b,r)}),Ur,n)},at=i(function(n,r,t,e,u,a,c){return{aN:t,aY:e,a2:c,a3:u,a4:r,bk:a,bx:n}}),ct=function(n){return n},it=ct,ot=function(n){return n},ft=t(function(n,r){return n(r)}),bt=t(function(n,r){return D(n,r)<0?n:r}),st=N,vt=function(n){return!f(Qr,4,n)&&f(Qr,100,n)||!f(Qr,400,n)},lt=t(function(n,r){var t=vt(n)?1:0;switch(r){case 0:return 0;case 1:return 31;case 2:return 59+t;case 3:return 90+t;case 4:return 120+t;case 5:return 151+t;case 6:return 181+t;case 7:return 212+t;case 8:return 243+t;case 9:return 273+t;case 10:return 304+t;default:return 334+t}}),dt=J,ht=t(function(n,r){return dt(n/r)}),gt=function(n){var r=n-1;return 365*r+(f(ht,r,4)-f(ht,r,100)+f(ht,r,400))},$t=t(function(n,r){switch(r){case 0:return 31;case 1:return vt(n)?29:28;case 2:return 31;case 3:return 30;case 4:return 31;case 5:return 30;case 6:case 7:return 31;case 8:return 30;case 9:return 31;case 10:return 30;default:return 31}}),mt=function(n){switch(n){case 0:return 1;case 1:return 2;case 2:return 3;case 3:return 4;case 4:return 5;case 5:return 6;case 6:return 7;case 7:return 8;case 8:return 9;case 9:return 10;case 10:return 11;default:return 12}},pt=function(n){switch(f(Fr,1,n)){case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;default:return 11}},yt=e(function(n,r,t){for(;;){var e=f($t,n,r),u=mt(r);if(u>=12||D(t,e)<=0)return{aN:t,a4:r,bx:n};n=n,r=pt(u+1),t-=e}}),wt=t(function(n,r){return P(f(ht,n,r),f(Qr,r,n))}),kt=function(n){var r=f(wt,n,146097),t=r.a,e=f(wt,r.b,36524),u=e.a,a=f(wt,e.b,1461),c=a.a,i=f(wt,a.b,365);return 400*t+100*u+4*c+i.a+(i.b?1:0)},Tt=function(n){var r=function(n){var r=n,t=kt(r);return{aB:r-gt(t),bx:t}}(n);return b(yt,r.bx,0,r.aB)},At=e(function(n,r,t){var e=t;switch(n){case 0:return b(At,1,12*r,e);case 1:var u=Tt(e),a=12*(u.bx-1)+(mt(u.a4)-1)+r,c=pt(f(Qr,12,a)+1),i=f(ht,a,12)+1;return gt(i)+f(lt,i,c)+f(bt,u.aN,f($t,i,c));case 2:return e+7*r;default:return e+r}}),Et=t(function(n,r){return dt(n/r)}),jt=e(function(n,r,t){for(;;){if(!t.b)return r+n;var e=t.a,u=t.b;if(D(e.b,r)<0)return r+e.a;n=n,r=r,t=u}}),xt=t(function(n,r){var t=n.b;return b(jt,n.a,f(Et,ot(r),6e4),t)}),Ct=function(n){return-n},Ot=function(n){var r=f(Et,n,1440)+719468,t=(r<0?r-146096:r)/146097|0,e=r-146097*t,u=(e-(e/1460|0)+(e/36524|0)-(e/146096|0))/365|0,a=e-(365*u+(u/4|0)-(u/100|0)),c=(5*a+2)/153|0,i=c+(c<10?3:-9);return{aN:a-((153*c+2)/5|0)+1,a4:i,bx:u+400*t+(i>2?0:1)}},Nt=t(function(n,r){return Ot(f(xt,n,r)).aN}),Dt=t(function(n,r){switch(Ot(f(xt,n,r)).a4){case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;default:return 11}}),Mt=t(function(n,r){return Ot(f(xt,n,r)).bx}),Gt=e(function(n,r,t){return D(t,n)<0?n:D(t,r)>0?r:t}),Pt=e(function(n,r,t){return gt(n)+f(lt,n,r)+b(Gt,1,f($t,n,r),t)}),St=t(function(n,r){return b(Pt,f(Mt,n,r),f(Dt,n,r),f(Nt,n,r))}),_t=function(n){return n},qt=function(n){return 864e5*(_t(n)-719163)},Bt=t(function(n,r){return f(Qr,24,f(Et,f(xt,n,r),60))}),Lt=t(function(n,r){return f(Qr,1e3,ot(r))}),Ht=t(function(n,r){return f(Qr,60,f(xt,n,r))}),It=t(function(n,r){return f(Qr,60,f(Et,ot(r),1e3))}),Jt=u(function(n,r,t,e){return 36e5*n+6e4*r+1e3*t+e}),Wt=t(function(n,r){return s(Jt,f(Bt,n,r),f(Ht,n,r),f(It,n,r),f(Lt,n,r))}),Rt=t(function(n,r){var t=ot(r);return(qt(f(St,n,r))+f(Wt,n,r)-t)/6e4|0}),Ft=e(function(n,r,t){var e=qt(r)+t,u=f(Rt,n,it(e)),a=it(e-6e4*u),c=f(Rt,n,a);if(C(u,c))return a;var i=it(e-6e4*c);return C(c,f(Rt,n,i))?i:a}),Vt=u(function(n,r,t,e){n:for(;;)switch(n){case 15:return it(ot(e)+r);case 14:n=15,r*=1e3,t=t,e=e;continue n;case 13:n=15,r*=6e4,t=t,e=e;continue n;case 12:n=15,r*=36e5,t=t,e=e;continue n;case 11:return b(Ft,t,b(At,3,r,f(St,t,e)),f(Wt,t,e));case 2:return b(Ft,t,b(At,1,r,f(St,t,e)),f(Wt,t,e));case 0:n=2,r*=12,t=t,e=e;continue n;case 1:n=2,r*=3,t=t,e=e;continue n;case 3:default:n=11,r*=7,t=t,e=e;continue n}}),Yt=t(function(n,r){var t=r.aY,e=r.a3,u=r.bk,a=r.a2;return b(Ft,n,b(Pt,r.bx,r.a4,r.aN),s(Jt,b(Gt,0,23,t),b(Gt,0,59,e),b(Gt,0,59,u),b(Gt,0,999,a)))}),Kt={$:1},Qt=t(function(n,r){return{ao:Kt,b0:(t=f(Mt,Yr,r),e=f(Yt,Kr,d(at,t,4,8,0,0,0,0)),u=f(Qr,100,t),a=f(Yt,Kr,d(at,t,10,1,0,0,0,0)),c=f(Yt,Kr,d(at,t,11,25,0,0,0,0)),i=f(Qr,19,t),o=f(Yt,Kr,d(at,t,0,1,0,0,0,0)),b=f(Yt,Kr,d(at,t,6,14,0,0,0,0)),v=f(Yt,Kr,d(at,t,4,1,0,0,0,0)),l=f(Qr,4,u),h=t/100|0,g=f(Qr,30,19*i+h-(h/4|0)-((h-((h+8)/25|0)+1)/3|0)+15),$=f(Qr,7,2*f(Qr,4,h)+2*(u/4|0)-g-l+32),m=g+$-7*((i+11*g+22*$)/451|0)+114,p=f(Qr,31,m),y=f(Yt,Kr,d(at,t,function(){switch(f(Fr,1,m/31|0)){case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9;case 11:return 10;default:return 11}}(),p+1,0,0,0,0)),w=s(Vt,11,1,Kr,y),k=s(Vt,11,50,Kr,y),T=f(Yt,Kr,d(at,t,7,15,0,0,0,0)),E=s(Vt,11,39,Kr,y),j=f(Yt,Kr,d(at,t,10,11,0,0,0,0)),ut(A([P("P\xe2ques",y),P("Lundi de P\xe2ques",w),P("Ascension",E),P("Pentec\xf4te",k),P("Jour de l'an",o),P("F\xeate du Travail",v),P("Victoire des allies",e),P("F\xeate Nationale",b),P("Assomption",T),P("La Toussaint",a),P("Armistice",j),P("No\xebl",c)]))),aC:Kt,aq:Kt,ar:n,as:r};var t,e,u,a,c,i,o,b,v,l,h,g,$,m,p,y,w,k,T,E,j}),zt=A([{P:"Cyber1 TD1",T:"11"},{P:"Cyber1 TD2",T:"12"},{P:"Cyber2 TD1",T:"21"},{P:"Cyber2 TD2",T:"22"},{P:"Cyber3 TD1",T:"31"},{P:"Cyber3 TD2",T:"32"}]),Ut=u(function(n,r,t,e){return{$:0,a:n,b:r,c:t,d:e}}),Xt=I,Zt=t(function(n,r){return R(r)/R(n)}),ne=Xt(f(Zt,2,32)),re=[],te=s(Ut,0,ne,re,re),ee=function(n){return{$:1,a:n}},ue=function(n){return{$:0,a:n}},ae=$,ce=function(n){return b(et,Hr,w,n)},ie=t(function(n,r){for(;;){var t=f(ae,32,n),e=t.b,u=f(Hr,ue(t.a),r);if(!e.b)return ce(u);n=e,r=u}}),oe=function(n){return n.a},fe=t(function(n,r){for(;;){var t=Xt(r/32);if(1===t)return f(ae,32,n).a;n=f(ie,n,w),r=t}}),be=function(n){return n.length},se=t(function(n,r){if(r.g){var t=32*r.g,e=dt(f(Zt,32,t-1)),u=n?ce(r.i):r.i,a=f(fe,u,r.g);return s(Ut,be(r.h)+t,f(Fr,5,e*ne),a,r.h)}return s(Ut,be(r.h),ne,re,r.h)}),ve=e(function(n,r,t){for(;;){var e=f(ae,32,n),u=e.a,a=e.b;if(D(be(u),32)<0)return f(se,!0,{i:r,g:t,h:u});n=a,r=f(Hr,ee(u),r),t+=1}}),le=function(n){return n.b?b(ve,n,w,0):te},de={aa:{j:le(A([72,69,76,80])),f:0},S:A([{w:"fun",j:le(A([38,38,40,40,37,39,37,39,66,65])),f:0,B:ut(A([P("start","6")])),G:"-iYBIsLFbKo"},{w:"fun2",j:le(A([65,66,39,37,39,37,40,40,38,38])),f:0,B:Ur,G:"vN-ARytZKgQ"},{w:"fun3",j:le(A([83,65,77,66,65])),f:0,B:ut(A([P("start","24")])),G:"HAiHEQblKeQ"}])},he={q:0,I:0},ge={u:he,v:he,y:Kt,O:0,D:2},$e=function(n){return{$:0,a:n}},me=t(function(n,r){for(;;){if(!r.b)return Kt;var t=r.a,e=r.b;if(n(t))return $e(t);n=n,r=e}}),pe=t(function(n,r){return r.$?n:r.a}),ye=t(function(n,r){var t=f(pe,{P:"Cyber1 TD2",T:"12"},f(me,function(n){return C(n.T,r)},zt));return{bE:f(Qt,0,it(0)),bI:Kt,bJ:Kt,bN:Kt,b1:!0,b2:!1,cb:de,cc:t,bm:n,cf:{bW:800,cr:1200},ck:ge,cn:!1}}),we=ct,ke=function(n){return!n.$},Te=F,Ae=Te(0),Ee=u(function(n,r,t,e){if(e.b){var u=e.a,a=e.b;if(a.b){var c=a.a,i=a.b;if(i.b){var o=i.a,v=i.b;if(v.b){var l=v.b;return f(n,u,f(n,c,f(n,o,f(n,v.a,t>500?b(et,n,r,ce(l)):s(Ee,n,r,t+1,l)))))}return f(n,u,f(n,c,f(n,o,r)))}return f(n,u,f(n,c,r))}return f(n,u,r)}return r}),je=e(function(n,r,t){return s(Ee,n,r,0,t)}),xe=t(function(n,r){return b(je,t(function(r,t){return f(Hr,n(r),t)}),w,r)}),Ce=K,Oe=t(function(n,r){return f(Ce,function(r){return Te(n(r))},r)}),Ne=e(function(n,r,t){return f(Ce,function(r){return f(Ce,function(t){return Te(f(n,r,t))},t)},r)}),De=function(n){return b(je,Ne(Hr),Te(w),n)},Me=g,Ge=a(function(n,r,t,e,u){for(;;){if(r<0)return f(se,!1,{i:e,g:t/32|0,h:u});var a=ee(b(Me,32,r,n));n=n,r-=32,t=t,e=f(Hr,a,e),u=u}}),Pe=t(function(n,r){if(n>0){var t=n%32;return v(Ge,r,n-t-32,n,w,b(Me,t,n-t,r))}return te}),Se=function(n){return{$:1,a:n}},_e=function(n){return{$:0,a:n}},qe=t(function(n,r){return{$:3,a:n,b:r}}),Be=t(function(n,r){return{$:0,a:n,b:r}}),Le=t(function(n,r){return{$:1,a:n,b:r}}),He=function(n){return{$:2,a:n}},Ie=function(n){var r=n.charCodeAt(0);return 55296>r||r>56319?r:1024*(r-55296)+n.charCodeAt(1)-56320+65536},Je=function(n){var r=Ie(n);return 97<=r&&r<=122},We=function(n){var r=Ie(n);return r<=90&&65<=r},Re=function(n){return Je(n)||We(n)},Fe=function(n){var r=Ie(n);return r<=57&&48<=r},Ve=function(n){return Je(n)||We(n)||Fe(n)},Ye=function(n){return b(et,t(function(n,r){return r+1}),0,n)},Ke=j,Qe=e(function(n,r,t){for(;;){if(D(n,r)>=1)return t;var e=n,u=r-1,a=f(Hr,r,t);n=e,r=u,t=a}}),ze=t(function(n,r){return b(Qe,n,r,w)}),Ue=t(function(n,r){return b(Ke,n,f(ze,0,Ye(r)-1),r)}),Xe=vn,Ze=dn,nu=t(function(n,r){return f(bn,n,E(r))}),ru=t(function(n,r){return A(f(fn,n,r))}),tu=function(n){return f(nu,"\n ",f(ru,"\n",n))},eu=Nn,uu=t(function(n,r){return"\n\n("+Ze(n+1)+") "+tu(au(r))}),au=function(n){return f(cu,n,w)},cu=t(function(n,r){n:for(;;)switch(n.$){case 0:var t=n.a,e=n.b,u=function(){var n,r,e=(r=(n=t).charCodeAt(0))?$e(55296>r||r>56319?P(_(n[0]),n.slice(1)):P(_(n[0]+n[1]),n.slice(2))):Kt;if(1===e.$)return!1;var u=e.a,a=u.b;return Re(u.a)&&f(Xe,Ve,a)}();n=e,r=f(Hr,u?"."+t:"['"+t+"']",r);continue n;case 1:e=n.b;var a="["+Ze(n.a)+"]";n=e,r=f(Hr,a,r);continue n;case 2:var c=n.a;if(c.b){if(c.b.b){var i=(r.b?"The Json.Decode.oneOf at json"+f(nu,"",ce(r)):"Json.Decode.oneOf")+" failed in the following "+Ze(Ye(c))+" ways:";return f(nu,"\n\n",f(Hr,i,f(Ue,uu,c)))}n=e=c.a,r=r;continue n}return"Ran into a Json.Decode.oneOf with no possibilities"+(r.b?" at json"+f(nu,"",ce(r)):"!");default:var o=n.a,b=n.b;return(i=r.b?"Problem with the value at json"+f(nu,"",ce(r))+":\n\n ":"Problem with the given value:\n\n")+tu(f(eu,4,b))+"\n\n"+o}}),iu=Bn,ou=t(function(n,r){var t=r;return X(f(Ce,iu(n),t))});Sn.Task=_n(Ae,e(function(n,r){return f(Oe,function(){return 0},De(f(xe,ou(n),r)))}),e(function(){return Te(0)}),t(function(n,r){return f(Oe,n,r)}));var fu,bu=Hn("Task"),su=t(function(n,r){return bu(f(Oe,n,r))}),vu=mn,lu=pn,du=function(n){return{$:0,a:n}},hu=function(n){switch(n.$){case 0:return 0;case 1:return 1;case 2:return 2;default:return 3}},gu=function(n){return n.length},$u=sn,mu=ln,pu=function(n){return""===n},yu=(fu=function(){return{bj:(n=xr.body,r=xr.documentElement,{cr:Math.max(n.scrollWidth,n.offsetWidth,r.scrollWidth,r.offsetWidth,r.clientWidth),bW:Math.max(n.scrollHeight,n.offsetHeight,r.scrollHeight,r.offsetHeight,r.clientHeight)}),bu:{cu:Cr.pageXOffset,cv:Cr.pageYOffset,cr:xr.documentElement.clientWidth,bW:xr.documentElement.clientHeight}};var n,r},Y(function(n){Er(function(){n(F(fu()))})})),wu=hn,ku={$:2},Tu=f(wu,"keyCode",ku),Au=function(n){return{$:7,a:n}},Eu=e(function(n,r,t){return{$:0,a:n,b:r,c:t}}),ju=t(function(n,r){return{a7:r,bp:n}}),xu=Te(f(ju,w,Ur)),Cu=function(n){return P(B(n.a?"w_":"d_",n.b),n)},Ou=t(function(n,r){return{aQ:r,a0:n}}),Nu=Ln,Du=e(function(n,r,t){return f(Oe,function(n){return P(r,n)},b(Or,t.a?Cr:xr,t.b,function(t){return f(Nu,n,f(Ou,r,t))}))}),Mu=e(function(n,r,t){for(;;){if(-2===t.$)return r;var e=t.e,u=n,a=b(n,t.b,t.c,b(Mu,n,r,t.d));n=u,r=a,t=e}}),Gu=c(function(n,r,u,a,c,i){var o=b(Mu,e(function(t,e,a){n:for(;;){var c=a.a,i=a.b;if(c.b){var o=c.a,f=o.a,v=o.b,l=c.b;if(D(f,t)<0){t=t,e=e,a=P(l,b(n,f,v,i));continue n}return D(f,t)>0?P(c,b(u,t,e,i)):P(l,s(r,f,v,e,i))}return P(c,b(u,t,e,i))}}),P(Rr(a),i),c),f=o.a,v=o.b;return b(et,t(function(r,t){return b(n,r.a,r.b,t)}),v,f)}),Pu=t(function(n,r){return b(Mu,tt,r,n)}),Su=function(n){return Y(function(r){var t=n.f;2===t.$&&t.c&&t.c(),n.f=null,r(F(G))})},_u=e(function(n,r,t){var a=e(function(r,t,e){var u=e.c;return S(e.a,e.b,f(Hr,b(Du,n,r,t),u))}),c=e(function(n,r,t){var e=t.b,u=t.c;return S(f(Hr,r,t.a),e,u)}),i=u(function(n,r,t,e){var u=e.c;return S(e.a,b(tt,n,r,e.b),u)}),o=f(xe,Cu,r),s=l(Gu,c,i,a,t.a7,ut(o),S(w,Ur,w)),v=s.b,d=s.c;return f(Ce,function(n){return Te(f(ju,o,f(Pu,v,ut(n))))},f(Ce,function(){return De(d)},De(f(xe,Su,s.a))))}),qu=e(function(n,r,t){var e=n(r);return e.$?t:f(Hr,e.a,t)}),Bu=t(function(n,r){return b(je,qu(n),w,r)});Sn["Browser.Events"]=_n(xu,_u,e(function(n,r,t){var e=r.a0,u=r.aQ,a=f(Bu,function(n){var r=n.b.c;return C(n.a,e)?f(Nr,r,u):Kt},t.bp);return f(Ce,function(){return Te(t)},De(f(xe,iu(n),a)))}),0,t(function(n,r){return b(Eu,r.a,r.b,f(vu,n,r.c))}));var Lu,Hu,Iu,Ju,Wu,Ru,Fu=Hn("Browser.Events"),Vu=f(e(function(n,r,t){return Fu(b(Eu,n,r,t))}),0,"keydown"),Yu=t(function(n,r){var t=r.ar,e=r.as,u=function(){switch(t){case 0:case 1:return 3;default:return 11}}();return q(r,{ao:Kt,aq:Kt,as:s(Vt,u,n,Yr,e)})}),Ku=t(function(n,r){switch(n.$){case 0:return f(Yu,-1,r);case 1:return f(Yu,1,r);case 3:return f(Yu,-7,r);case 2:return f(Yu,7,r);case 4:return q(r,{ar:n.a});case 5:return q(r,{as:n.a});case 6:var t=n.a;return q(r,{aC:$e(e=n.b),aq:$e(t)});case 7:var e=n.b;return q(r,{ao:$e(t=n.a),aC:$e(e)});default:return t=n.a,q(r,{ao:Kt,aq:Kt})}}),Qu={$:0},zu={$:1},Uu={$:0},Xu={$:5},Zu={$:6},na=function(n){return{$:2,a:n}},ra=4294967295>>>32-ne,ta=m,ea=e(function(n,r,t){for(;;){var e=f(ta,ra&r>>>n,t);if(e.$)return f(ta,ra&r,e.a);n-=ne,r=r,t=e.a}}),ua=function(n){return n>>>5<<5},aa=t(function(n,r){var t=r.a,e=r.b,u=r.c,a=r.d;return n<0||D(n,t)>-1?Kt:D(n,ua(t))>-1?$e(f(ta,ra&n,a)):$e(b(ea,e,n,u))}),ca=t(function(n,r){var t=f(aa,r.f,r.j);return t.$?q(r,{f:0}):C(n,t.a)?q(r,{f:r.f+1}):q(r,{f:0})}),ia=t(function(n,r){var t=f(ca,n,{j:r.j,f:r.f});return{w:r.w,j:t.j,f:t.f,B:r.B,G:r.G}}),oa=t(function(n,r){var t=f(xe,ia(n),r.S);return{aa:f(ca,n,r.aa),S:t}}),fa=Dn,ba=function(n){return Dn(b(et,t(function(n,r){return b(Gn,n.a,n.b,r)}),{},n))},sa=Dn,va=(Lu=function(n){return ba(A([P("group",sa(n.aV)),P("settings",function(n){return ba(A([P("allWeek",fa(n.by)),P("menuOpened",fa(n.b3)),P("showCustom",fa(n.cd)),P("showHack2g2",fa(n.ce))]))}(n.bm))]))},function(n){Sn[n]&&x(3)}("save"),Sn.save={e:Rn,r:Lu,a:function(n){var r=[],t=Sn[n].r,u=Pn(0);return Sn[n].b=u,Sn[n].c=e(function(n,e){for(;e.b;e=e.b)for(var a=r,c=Mn(t(e.a)),i=0;i0?n.y:Kt}),ga=function(n){var r=n.q;return r>0?$e(1):r<0?$e(0):Kt},$a=t(function(n,r){return{q:n.q-r.q,I:n.I-r.I}}),ma=t(function(n,r){switch(n.$){case 0:return{u:(e=n.a).x,v:he,y:Kt,O:e.ab,D:0};case 1:var t=ga(f($a,(e=n.a).x,r.u));return q(r,{v:e.x,y:t,O:e.ab,D:1});case 2:return t=ga(f($a,(e=n.a).x,r.u)),q(r,{v:e.x,y:t,O:e.ab,D:2});default:var e;return{u:(e=n.a).x,v:he,y:Kt,O:e.ab,D:2}}}),pa=function(n){return{$:1,a:n}},ya=e(function(n,r,t){return{at:t,ax:r,b8:n}}),wa=i(function(n,r,t,e,u,a,c){return{bG:e,bL:t,bO:c,bU:a,cg:r,cl:u,aG:n}}),ka=function(n){return{$:7,b:n}},Ta=function(n){return{$:15,g:n}},Aa={$:6},Ea=(Hu=ka(Aa),Ta(A([(Ru=Kt,{$:9,c:Ru}),f(vu,$e,Hu)]))),ja=f(vu,function(n){return{bP:n}},f(wu,"events",ka(h(wn,wa,f(wu,"title",Aa),f(wu,"startDate",Aa),f(wu,"endDate",Aa),f(wu,"classrooms",Ea),f(wu,"teachers",Ea),f(wu,"groups",Ea),f(wu,"eventId",Aa))))),xa=function(n){return Ta(A([f(vu,$e,n),du(Kt)]))},Ca=s(yn,ya,f(wu,"planning",ja),xa(f(wu,"hack2g2",ja)),xa(f(wu,"custom",ja))),Oa=t(function(n,r){n:for(;;){if(-2===r.$)return Kt;var t=r.c,e=r.d,u=r.e;switch(f(Zr,n,r.b)){case 0:n=n,r=e;continue n;case 1:return $e(t);default:n=n,r=u;continue n}}}),Na=function(n){if(-1===n.$&&-1===n.d.$&&-1===n.e.$){if(-1!==n.e.d.$||n.e.d.a){var r=n.d,t=n.e;return c=t.b,i=t.c,e=t.d,b=t.e,v(Xr,1,n.b,n.c,v(Xr,0,r.b,r.c,r.d,r.e),v(Xr,0,c,i,e,b))}var e,u=n.d,a=n.e,c=a.b,i=a.c,o=(e=a.d).d,f=e.e,b=a.e;return v(Xr,0,e.b,e.c,v(Xr,1,n.b,n.c,v(Xr,0,u.b,u.c,u.d,u.e),o),v(Xr,1,c,i,f,b))}return n},Da=function(n){if(-1===n.$&&-1===n.d.$&&-1===n.e.$){if(-1!==n.d.d.$||n.d.d.a){var r=n.d,t=n.e;return f=t.b,b=t.c,s=t.d,l=t.e,v(Xr,1,e=n.b,u=n.c,v(Xr,0,r.b,r.c,r.d,i=r.e),v(Xr,0,f,b,s,l))}var e=n.b,u=n.c,a=n.d,c=a.d,i=a.e,o=n.e,f=o.b,b=o.c,s=o.d,l=o.e;return v(Xr,0,a.b,a.c,v(Xr,1,c.b,c.c,c.d,c.e),v(Xr,1,e,u,i,v(Xr,0,f,b,s,l)))}return n},Ma=i(function(n,r,t,e,u,a,c){if(-1!==a.$||a.a){n:for(;;){if(-1===c.$&&1===c.a){if(-1===c.d.$){if(1===c.d.a)return Da(r);break n}return Da(r)}break n}return r}return v(Xr,t,a.b,a.c,a.d,v(Xr,0,e,u,a.e,c))}),Ga=function(n){if(-1===n.$&&-1===n.d.$){var r=n.a,t=n.b,e=n.c,u=n.d,a=u.d,c=n.e;if(1===u.a){if(-1!==a.$||a.a){var i=Na(n);if(-1===i.$){var o=i.e;return v(nt,i.a,i.b,i.c,Ga(i.d),o)}return zr}return v(Xr,r,t,e,Ga(u),c)}return v(Xr,r,t,e,Ga(u),c)}return zr},Pa=t(function(n,r){if(-2===r.$)return zr;var t=r.a,e=r.b,u=r.c,a=r.d,c=r.e;if(D(n,e)<0){if(-1===a.$&&1===a.a){var i=a.d;if(-1!==i.$||i.a){var o=Na(r);if(-1===o.$){var b=o.e;return v(nt,o.a,o.b,o.c,f(Pa,n,o.d),b)}return zr}return v(Xr,t,e,u,f(Pa,n,a),c)}return v(Xr,t,e,u,f(Pa,n,a),c)}return f(Sa,n,d(Ma,n,r,t,e,u,a,c))}),Sa=t(function(n,r){if(-1===r.$){var t=r.a,e=r.b,u=r.c,a=r.d,c=r.e;if(C(n,e)){var i=function(n){for(;;){if(-1!==n.$||-1!==n.d.$)return n;n=n.d}}(c);return-1===i.$?v(nt,t,i.b,i.c,a,Ga(c)):zr}return v(nt,t,e,u,a,f(Pa,n,c))}return zr}),_a=t(function(n,r){var t=f(Pa,n,r);return-1!==t.$||t.a?t:v(Xr,1,t.b,t.c,t.d,t.e)}),qa=e(function(n,r,t){var e=r(f(Oa,n,t));return e.$?f(_a,n,t):b(tt,n,e.a,t)}),Ba=function(n){return!n.$},La=t(function(n,r){return r.$?Se(r.a):_e(n(r.a))}),Ha=t(function(n,r){return{$:4,a:n,b:r}}),Ia=function(n){return{$:3,a:n}},Ja=function(n){return{$:0,a:n}},Wa={$:2},Ra={$:1},Fa=function(n){return 1===n.$},Va=kn,Ya=ct,Ka=e(function(n,r,t){return Ya({bB:t,bQ:(u=f(wu,"data",Ca),e=function(n){var r=f(Va,u,n.bB);return 1===r.$?Se(au(r.a)):_e(r.a)},{$:0,b:"text",a:e}),bV:r,b4:"POST",cm:Kt,cp:n,cs:!1});var e,u}),Qa=e(function(n,r,t){return n(r(t))}),za=Q,Ua=t(function(n,r){return bu(f(za,f(Qa,f(Qa,Te,n),Se),f(Ce,f(Qa,f(Qa,Te,n),_e),r)))}),Xa=t(function(n,r){return f(Ua,n,f(Mr,r,Kt))}),Za=t(function(n,r){return{$:1,a:n,b:r}}),nc=t(function(n,r){return Dn(b(et,function(n){return t(function(r,t){return t.push(Mn(n(r))),t})}(n),[],r))}),rc=t(function(n,r){var t,e=r.aH,u=r.aw,a=r.ax,c=r.at,i=ba(A([P("from",sa(r.av)),P("to",sa(e)),P("grs",f(nc,sa,u)),P("hack2g2",fa(a)),P("custom",fa(c))]));return t=ba(A([P("query",sa(n)),P("variables",i)])),f(Za,"application/json",f(eu,0,t))}),tc=u(function(n,r,t,e){return f(Xa,pa,b(Ka,"https://cyberplanning.fr/graphql/",w,f(rc,"query day_planning($grs: [String], $to: DateTime!, $from: DateTime!, $hack2g2: Boolean!, $custom: Boolean!) {\n planning(collection: CYBER, affiliationGroups: $grs, toDate: $to, fromDate: $from) {\n ...events\n }\n hack2g2: planning(collection: HACK2G2, toDate: $to, fromDate: $from) @include(if: $hack2g2) {\n ...events\n }\n custom: planning(collection: CUSTOM, toDate: $to, fromDate: $from) @include(if: $custom) {\n ...events\n }\n }\n fragment events on Planning {\n events {\n title\n eventId\n startDate\n endDate\n classrooms\n teachers\n groups\n }\n }\n ",{at:e.cd,av:n,aw:t,ax:e.ce,aH:r})))}),ec=e(function(n,r,t){return r(n(t))}),uc=t(function(n,r){return n<1?r:b($u,0,-n,r)}),ac=f(Vr,0,w),cc=an,ic=function(n){return f(cc,n,"")},oc=e(function(n,r,t){return n>0?b(oc,n>>1,B(r,r),1&n?B(t,r):t):t}),fc=t(function(n,r){return b(oc,n,r,"")}),bc=e(function(n,r,t){return B(f(fc,n-gu(t),ic(r)),t)}),sc=t(function(n,r){return b(bc,n,"0",Ze(r))}),vc=f(ec,function(n){return f(sc,4,f(Mt,ac,n))+"-"+f(sc,2,function(){switch(f(Dt,ac,n)){case 0:return 1;case 1:return 2;case 2:return 3;case 3:return 4;case 4:return 5;case 5:return 6;case 6:return 7;case 7:return 8;case 8:return 9;case 9:return 10;case 10:return 11;default:return 12}}())+"-"+f(sc,2,f(Nt,ac,n))+"T"+f(sc,2,f(Bt,ac,n))+":"+f(sc,2,f(Ht,ac,n))+":"+f(sc,2,f(It,ac,n))+"."+f(sc,3,f(Lt,ac,n))+"Z"},uc(14)),lc=t(function(n,r){return f(Qr,7,(f(Qr,7,r)||7)+7-function(n){switch(n){case 0:return 1;case 1:return 2;case 2:return 3;case 3:return 4;case 4:return 5;case 5:return 6;default:return 7}}(n))}),dc=t(function(n,r){return gt(n)+f(lt,n,r)+1}),hc=f(ec,Tt,function(n){return n.a4}),gc=f(ec,hc,function(n){return(mt(n)+2)/3|0}),$c=t(function(n,r){var t,e,u=r;switch(n){case 0:return e=kt(r),gt(e)+1;case 1:return f(dc,kt(r),(t=gc(r),pt(3*t-2)));case 2:return f(dc,kt(r),hc(r));case 3:case 4:return u-f(lc,0,r);case 5:return u-f(lc,1,r);case 6:return u-f(lc,2,r);case 7:return u-f(lc,3,r);case 8:return u-f(lc,4,r);case 9:return u-f(lc,5,r);case 10:return u-f(lc,6,r);default:return r}}),mc=e(function(n,r,t){return b(Ft,r,f($c,n,f(St,r,t)),0)}),pc=e(function(n,r,t){switch(n){case 15:return t;case 14:return b(Ft,r,f(St,r,t),s(Jt,f(Bt,r,t),f(Ht,r,t),f(It,r,t),0));case 13:return b(Ft,r,f(St,r,t),s(Jt,f(Bt,r,t),f(Ht,r,t),0,0));case 12:return b(Ft,r,f(St,r,t),s(Jt,f(Bt,r,t),0,0,0));case 11:return b(mc,11,r,t);case 2:return b(mc,2,r,t);case 0:return b(mc,0,r,t);case 1:return b(mc,1,r,t);case 3:return b(mc,3,r,t);case 4:return b(mc,4,r,t);case 5:return b(mc,5,r,t);case 6:return b(mc,6,r,t);case 7:return b(mc,7,r,t);case 8:return b(mc,8,r,t);case 9:return b(mc,9,r,t);default:return b(mc,10,r,t)}}),yc=e(function(n,r,t){var e=b(pc,n,r,t);return C(e,t)?t:s(Vt,n,1,r,e)}),wc=e(function(n,r,t){var e=vc(b(yc,10,Yr,b(yc,2,Yr,s(Vt,11,1,Yr,n)))),u=vc(b(pc,4,Yr,b(pc,2,Yr,n)));return s(tc,u,e,A([r]),t)}),kc=function(n){return{$:2,m:n}},Tc=kc(w),Ac=t(function(n,r){var t=f(Ku,r,n.bE),e=C(f(Mt,Yr,t.as),f(Mt,Yr,n.bE.as))?t:f(Qt,t.ar,t.as),u=C(f(Dt,Yr,t.as),f(Dt,Yr,n.bE.as))?P(Tc,!1):P(b(wc,t.as,n.cc.T,n.bm),!0),a=u.a;return P(q(n,{bE:e,b1:u.b}),a)}),Ec=function(n){return{$:12,a:n}},jc=Pn,xc=function(n){return kc(A([n,f(su,Ec,jc(1e3))]))},Cc=ct,Oc=function(n){n:for(;;)switch(n){case 0:return"0";case 1:return"1";case 2:return"2";case 3:return"3";case 4:return"4";case 5:return"5";case 6:return"6";case 7:return"7";case 8:return"8";case 9:return"9";case 10:return"a";case 11:return"b";case 12:return"c";case 13:return"d";case 14:return"e";case 15:return"f";default:n=n;continue n}},Nc=t(function(n,r){for(;;){if(r<16)return f(Hr,Oc(r),n);n=f(Hr,Oc(f(Qr,16,r)),n),r=r/16|0}}),Dc=function(n){return E(n<0?f(Hr,"-",f(Nc,w,-n)):f(Nc,w,n)).join("")},Mc=t(function(n,r){var t=dt(n);return f(Qr,r,t)+n-t}),Gc=function(n){return 3.141592653589793*n/180},Pc=e(function(n,r,t){var e=n/Gc(60),u=(1-la(2*t-1))*r,a=t-u/2,c=u*(1-la(f(Mc,e,2)-1)),i=e<0?S(0,0,0):e<1?S(u,c,0):e<2?S(c,u,0):e<3?S(0,u,c):e<4?S(0,c,u):e<5?S(c,0,u):e<6?S(u,0,c):S(0,0,0);return S(i.a+a,i.b+a,i.c+a)}),Sc=W,_c=u(function(n,r,t,e){var u=b(Pc,n-6.283185307179586*dt(n/6.283185307179586),r,t),a=u.a,c=u.b;return{H:e,bA:Sc(255*u.c),bT:Sc(255*c),b9:Sc(255*a)}}),qc=e(function(n,r,t){return s(_c,n,r,t,1)}),Bc=e(function(n,r,t){var e=n/255,u=r/255,a=t/255,c=f(Fr,f(Fr,e,u),a),i=f(bt,f(bt,e,u),a),o=c-i,b=(c+i)/2,s=b?o/(1-la(2*b-1)):0;return S(Gc(60)*(C(c,e)?f(Mc,(u-a)/o,6):C(c,u)?(a-e)/o+2:(e-u)/o+4),s,b)}),Lc=e(function(n,r,t){return{H:1,bA:t,bT:r,b9:n}}),Hc=t(function(n,r){return r.$?n:r.a}),Ic=t(function(n,r){return n<1?"":b($u,-n,gu(r),r)}),Jc=t(function(n,r){return r.$?Se(n(r.a)):_e(r.a)}),Wc=on,Rc=function(n){return b(Wc,Hr,w,n)},Fc=L,Vc=e(function(n,r,t){n:for(;;){if(!r.b)return _e(t);var e=r.a,u=r.b;switch(e){case"0":n=a=n-1,r=c=u,t=i=t;continue n;case"1":var a=n-1,c=u,i=t+f(Fc,16,n);n=a,r=c,t=i;continue n;case"2":a=n-1,c=u,i=t+2*f(Fc,16,n),n=a,r=c,t=i;continue n;case"3":a=n-1,c=u,i=t+3*f(Fc,16,n),n=a,r=c,t=i;continue n;case"4":a=n-1,c=u,i=t+4*f(Fc,16,n),n=a,r=c,t=i;continue n;case"5":a=n-1,c=u,i=t+5*f(Fc,16,n),n=a,r=c,t=i;continue n;case"6":a=n-1,c=u,i=t+6*f(Fc,16,n),n=a,r=c,t=i;continue n;case"7":a=n-1,c=u,i=t+7*f(Fc,16,n),n=a,r=c,t=i;continue n;case"8":a=n-1,c=u,i=t+8*f(Fc,16,n),n=a,r=c,t=i;continue n;case"9":a=n-1,c=u,i=t+9*f(Fc,16,n),n=a,r=c,t=i;continue n;case"a":a=n-1,c=u,i=t+10*f(Fc,16,n),n=a,r=c,t=i;continue n;case"b":a=n-1,c=u,i=t+11*f(Fc,16,n),n=a,r=c,t=i;continue n;case"c":a=n-1,c=u,i=t+12*f(Fc,16,n),n=a,r=c,t=i;continue n;case"d":a=n-1,c=u,i=t+13*f(Fc,16,n),n=a,r=c,t=i;continue n;case"e":a=n-1,c=u,i=t+14*f(Fc,16,n),n=a,r=c,t=i;continue n;case"f":a=n-1,c=u,i=t+15*f(Fc,16,n),n=a,r=c,t=i;continue n;default:return Se(ic(e)+" is not a valid hexadecimal character.")}}}),Yc=function(n){if(pu(n))return Se("Empty strings are not valid hexadecimal strings.");var r=function(){if(f(mu,"-",n)){var r=f(pe,w,function(n){return n.b?$e(n.b):Kt}(Rc(n)));return f(La,Ct,b(Vc,Ye(r)-1,r,0))}return b(Vc,gu(n)-1,Rc(n),0)}();return f(Jc,function(r){return f(nu," ",A(['"'+n+'"',"is not a valid hexadecimal string because",r]))},r)},Kc=p,Qc=u(function(n,r,t,e){var u=ra&r>>>n,a=f(ta,u,e);return b(Kc,u,a.$?ee(b(Kc,ra&r,t,a.a)):ue(s(Qc,n-ne,r,t,a.a)),e)}),zc=e(function(n,r,t){var e=t.a,u=t.b,a=t.c,c=t.d;return n<0||D(n,e)>-1?t:D(n,ua(e))>-1?s(Ut,e,u,a,b(Kc,ra&n,r,c)):s(Ut,e,u,s(Qc,u,n,r,a),c)}),Uc=f(t(function(n,r){return f(Pe,n,function(){return r})}),16,0),Xc=t(function(n,r){return 4294967295&n+r}),Zc=t(function(n,r){return r<>>32-n}),ni=o(function(n,r,t,e,u,a,c,i){return f(Xc,t,f(Zc,c,f(Xc,r,f(Xc,i,f(Xc,b(n,t,e,u),a)))))}),ri=e(function(n,r,t){return t^n&(r^t)}),ti=i(function(n,r,t,e,u,a,c){return h(ni,ri,n,r,t,e,u,a,c)}),ei=e(function(n,r,t){return r^t&(n^r)}),ui=i(function(n,r,t,e,u,a,c){return h(ni,ei,n,r,t,e,u,a,c)}),ai=e(function(n,r,t){return t^n^r}),ci=i(function(n,r,t,e,u,a,c){return h(ni,ai,n,r,t,e,u,a,c)}),ii=e(function(n,r,t){return r^(n|~t)}),oi=i(function(n,r,t,e,u,a,c){return h(ni,ii,n,r,t,e,u,a,c)}),fi=t(function(n,r){if(n.b&&n.b.b&&n.b.b.b&&n.b.b.b.b&&n.b.b.b.b.b&&n.b.b.b.b.b.b&&n.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b&&n.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b&&!n.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b){var t=n.a,e=n.b,u=e.a,a=e.b,c=a.a,i=a.b,o=i.a,b=i.b,s=b.a,v=b.b,l=v.a,h=v.b,g=h.a,$=h.b,m=$.a,p=$.b,y=p.a,w=p.b,k=w.a,T=w.b,A=T.a,E=T.b,j=E.a,x=E.b,C=x.a,O=x.b,N=O.a,D=O.b,M=D.a,G=D.b.a,P=r.an,S=r.am,_=r.al,q=r.ak,B=d(ti,q,_,S,P,t,7,3614090360),L=d(ti,P,B,_,S,u,12,3905402710),H=d(ti,S,L,B,_,c,17,606105819),I=d(ti,_,H,L,B,o,22,3250441966),J=d(ti,B,I,H,L,s,7,4118548399),W=d(ti,L,J,I,H,l,12,1200080426),R=d(ti,H,W,J,I,g,17,2821735955),F=d(ti,I,R,W,J,m,22,4249261313),V=d(ti,J,F,R,W,y,7,1770035416),Y=d(ti,W,V,F,R,k,12,2336552879),K=d(ti,R,Y,V,F,A,17,4294925233),Q=d(ti,F,K,Y,V,j,22,2304563134),z=d(ti,V,Q,K,Y,C,7,1804603682),U=d(ti,Y,z,Q,K,N,12,4254626195),X=d(ti,K,U,z,Q,M,17,2792965006),Z=d(ti,Q,X,U,z,G,22,1236535329),nn=d(ui,z,Z,X,U,u,5,4129170786),rn=d(ui,U,nn,Z,X,g,9,3225465664),tn=d(ui,X,rn,nn,Z,j,14,643717713),en=d(ui,Z,tn,rn,nn,t,20,3921069994),un=d(ui,nn,en,tn,rn,l,5,3593408605),an=d(ui,rn,un,en,tn,A,9,38016083),cn=d(ui,tn,an,un,en,G,14,3634488961),on=d(ui,en,cn,an,un,s,20,3889429448),fn=d(ui,un,on,cn,an,k,5,568446438),bn=d(ui,an,fn,on,cn,M,9,3275163606),sn=d(ui,cn,bn,fn,on,o,14,4107603335),vn=d(ui,on,sn,bn,fn,y,20,1163531501),ln=d(ui,fn,vn,sn,bn,N,5,2850285829),dn=d(ui,bn,ln,vn,sn,c,9,4243563512),hn=d(ui,sn,dn,ln,vn,m,14,1735328473),gn=d(ui,vn,hn,dn,ln,C,20,2368359562),$n=d(ci,ln,gn,hn,dn,l,4,4294588738),mn=d(ci,dn,$n,gn,hn,y,11,2272392833),pn=d(ci,hn,mn,$n,gn,j,16,1839030562),yn=d(ci,gn,pn,mn,$n,M,23,4259657740),wn=d(ci,$n,yn,pn,mn,u,4,2763975236),kn=d(ci,mn,wn,yn,pn,s,11,1272893353),Tn=d(ci,pn,kn,wn,yn,m,16,4139469664),An=d(ci,yn,Tn,kn,wn,A,23,3200236656),En=d(ci,wn,An,Tn,kn,N,4,681279174),jn=d(ci,kn,En,An,Tn,t,11,3936430074),xn=d(ci,Tn,jn,En,An,o,16,3572445317),Cn=d(ci,An,xn,jn,En,g,23,76029189),On=d(ci,En,Cn,xn,jn,k,4,3654602809),Nn=d(ci,jn,On,Cn,xn,C,11,3873151461),Dn=d(ci,xn,Nn,On,Cn,G,16,530742520),Mn=d(ci,Cn,Dn,Nn,On,c,23,3299628645),Gn=d(oi,On,Mn,Dn,Nn,t,6,4096336452),Pn=d(oi,Nn,Gn,Mn,Dn,m,10,1126891415),Sn=d(oi,Dn,Pn,Gn,Mn,M,15,2878612391),_n=d(oi,Mn,Sn,Pn,Gn,l,21,4237533241),qn=d(oi,Gn,_n,Sn,Pn,C,6,1700485571),Bn=d(oi,Pn,qn,_n,Sn,o,10,2399980690),Ln=d(oi,Sn,Bn,qn,_n,A,15,4293915773),Hn=d(oi,_n,Ln,Bn,qn,u,21,2240044497),In=d(oi,qn,Hn,Ln,Bn,y,6,1873313359),Jn=d(oi,Bn,In,Hn,Ln,G,10,4264355552),Wn=d(oi,Ln,Jn,In,Hn,g,15,2734768916),Rn=d(oi,Hn,Wn,Jn,In,N,21,1309151649),Fn=d(oi,In,Rn,Wn,Jn,s,6,4149444226),Vn=d(oi,Jn,Fn,Rn,Wn,j,10,3174756917),Yn=d(oi,Wn,Vn,Fn,Rn,c,15,718787259),Kn=f(Xc,_,d(oi,Rn,Yn,Vn,Fn,k,21,3951481745)),Qn=f(Xc,S,Yn),zn=f(Xc,P,Vn);return{ak:f(Xc,q,Fn),al:Kn,am:Qn,an:zn}}return r}),bi=t(function(n,r){return f(pe,0,f(aa,n,r))}),si=t(function(n,r){var t=r.a,e=r.b,u=e.a,a=e.b,c=r.c,i=u/4|0,o=b(zc,i,f(bi,i,a)|n<>>6,t):f(n,128|63&r>>>6,r<65536?f(n,224|r>>>12,t):f(n,128|63&r>>>12,f(n,240|r>>>18,t))))}),hi=e(function(n,r,e){return b(li,t(function(r,t){return b(di,n,Ie(r),t)}),r,e)}),gi=function(n){switch(n){case 0:return"0";case 1:return"1";case 2:return"2";case 3:return"3";case 4:return"4";case 5:return"5";case 6:return"6";case 7:return"7";case 8:return"8";case 9:return"9";case 10:return"a";case 11:return"b";case 12:return"c";case 13:return"d";case 14:return"e";case 15:return"f";default:return B(gi(n/16|0),gi(n%16))}},$i=function(n){return b(et,t(function(n,r){return B(r,b(bc,2,"0",gi(n)))}),"",A([255&(e=(r=function(n){return r=b(hi,si,S(vi,P(0,Uc),0),n),e=r.a,i=r.c,s=b(zc,o=(a=(u=r.b).a)/4|0,f(bi,o,c=u.b)|128<>>29,b(zc,14,i<<3,s))),f(fi,t,e)):function(n){return f(fi,n,f(fi,Ir(s),e))}(Ir(b(zc,15,i>>>29,b(zc,14,i<<3,Uc))));var r,t,e,u,a,c,i,o,s}(n)).ak),e>>>8&255,e>>>16&255,e>>>24&255,255&(u=r.al),u>>>8&255,u>>>16&255,u>>>24&255,255&(a=r.am),a>>>8&255,a>>>16&255,a>>>24&255,255&(c=r.an),c>>>8&255,c>>>16&255,c>>>24&255]));var r,e,u,a,c},mi=function(n){var r,t,e,u=f(Ic,6,$i(f(uc,1,n))),a=f(Hc,0,Yc(b($u,0,2,u))),c=f(Hc,0,Yc(b($u,2,4,u))),i=f(Hc,0,Yc(b($u,4,6,u)));return r=function(n){var r=function(n){var r=b(Bc,n.b9,n.bT,n.bA);return{H:n.H,bY:r.a,a1:r.c,bi:r.b}}(n);return b(qc,r.bY,r.bi,r.a1>.4?.4:r.a1)}(b(Lc,a,c,i)),"#"+((t=f(ec,Dc,f(bc,2,"0")))((e=Cc(r)).b9)+(t(e.bT)+t(e.bA)))},pi=function(n){return{aR:mi(n),br:"white"}},yi=e(function(n,r,t){return{aM:r,a9:t,bh:n}}),wi=function(n){return b(yi,n.bh,n.aM,n.a9)},ki=t(function(n,r){n:for(;;)switch(n.$){case 0:return r;case 1:var t=n.b;n=n.a,r=f(Hr,t,r);continue n;default:var e=n.b;n=n.a,r=f(ki,e,r);continue n}}),Ti=t(function(n,r){var t=n({aM:1,d:w,e:1,a:0,bh:1,c:r});return t.$?Se(f(ki,t.b,w)):_e(t.b)}),Ai=t(function(n,r){var t=f(Ti,n,r);return t.$?Se(f(xe,wi,t.a)):_e(t.a)}),Ei=t(function(n,r){return{$:1,a:n,b:r}}),ji=e(function(n,r,t){return{$:0,a:n,b:r,c:t}}),xi=t(function(n,r){var t=r;return function(r){var e=t(r);if(1===e.$)return f(Ei,e.a,o=e.b);var u=e.a,a=e.c,c=n(e.b)(a);if(1===c.$){var i=c.a,o=c.b;return f(Ei,u||i,o)}return i=c.a,b(ji,u||i,c.b,c.c)}}),Ci=t(function(n,r){return{$:1,a:n,b:r}}),Oi=u(function(n,r,t,e){return{aM:r,bH:e,a9:t,bh:n}}),Ni={$:0},Di=t(function(n,r){return f(Ci,Ni,s(Oi,n.bh,n.aM,r,n.d))}),Mi=(Iu={$:10},function(n){return C(gu(n.c),n.a)?b(ji,!1,0,n):f(Ei,!1,f(Di,n,Iu))}),Gi=t(function(n){return n}),Pi=e(function(n,r,t){var e=r,u=t;return function(r){var t=e(r);if(1===t.$)return f(Ei,t.a,s=t.b);var a=t.a,c=t.b,i=u(t.c);if(1===i.$){var o=i.a,s=i.b;return f(Ei,a||o,s)}o=i.a;var v=i.c;return b(ji,a||o,f(n,c,i.b),v)}}),Si=t(function(n,r){return b(Pi,Gi,n,r)}),_i=t(function(n,r){return b(Pi,ft,n,r)}),qi=t(function(n,r){var t=r;return function(r){var e=t(r);if(e.$)return f(Ei,e.a,e.b);var u=e.c;return b(ji,e.a,n(e.b),u)}}),Bi=t(function(n,r){return{$:2,a:n,b:r}}),Li=e(function(n,r,t){n:for(;;){if(t.b){var e=t.b,u=(0,t.a)(n);if(u.$){var a,c=(a=u).b;if(a.a)return a;n=n,r=f(Bi,r,c),t=e;continue n}return u}return f(Ei,!1,r)}}),Hi=function(n){return function(r){return b(Li,r,Ni,n)}},Ii=function(n){return function(r){return b(ji,!1,n,r)}},Ji=t(function(n,r){return{$:0,a:n,b:r}}),Wi=Gr,Ri=function(n){return function(n){var r=n.a,t=n.b,e=!pu(r);return function(n){var u=v(Wi,r,n.a,n.bh,n.aM,n.c),a=u.a,c=u.b,i=u.c;return C(a,-1)?f(Ei,!1,f(Di,n,t)):b(ji,e,0,{aM:i,d:n.d,e:n.e,a:a,bh:c,c:n.c})}}(f(Ji,n,{$:8,a:n}))},Fi=Pr,Vi=a(function(n,r,t,e,u){for(;;){var a=b(Fi,n,r,u.c);if(C(a,-1))return b(ji,D(u.a,r)<0,0,{aM:e,d:u.d,e:u.e,a:r,bh:t,c:u.c});C(a,-2)?(n=n,r+=1,t+=1,e=1,u=u):(n=n,r=a,t=t,e+=1,u=u)}}),Yi=function(n){return function(r){return v(Vi,n,r.a,r.bh,r.aM,r)}},Ki=t(function(n,r){var t=r;return function(r){var e=t(r);if(1===e.$)return f(Ei,e.a,e.b);var u=e.b,a=e.c;return b(ji,e.a,f(n,b($u,r.a,a.a,r.c),u),a)}}),Qi=function(n){return f(Ki,Gi,n)},zi=function(n){return r={$:12,a:n},function(n){return f(Ei,!1,f(Di,n,r))};var r},Ui=f(xi,function(n){if(gu(n)>9)return zi("Expected at most 9 digits, but got "+Ze(gu(n)));var r=function(n){if(0===n.length||/[\sxbo]/.test(n))return Kt;var r=+n;return r===r?$e(r):Kt}("0."+n);return r.$?zi('Invalid float: "'+n+'"'):Ii(Sc(1e3*r.a))},Qi(Yi(Fe))),Xi=c(function(n,r,t,e,u,a){return it(n+60*r*60*1e3+60*(t-a)*1e3+1e3*e+u)}),Zi=function(n){return f(xi,function(r){if(C(gu(r),n)){var t=function(n){for(var r=0,t=n.charCodeAt(0),e=43==t||45==t?1:0,u=e;u31?no(e):u(0);case 2:return e>29||29===e&&!ro(r)?no(e):u(26784e5);case 3:return e>31?no(e):u(50976e5);case 4:return e>30?no(e):u(7776e6);case 5:return e>31?no(e):u(10368e6);case 6:return e>30?no(e):u(130464e5);case 7:return e>31?no(e):u(156384e5);case 8:return e>31?no(e):u(183168e5);case 9:return e>30?no(e):u(209952e5);case 10:return e>31?no(e):u(235872e5);case 11:return e>30?no(e):u(262656e5);case 12:return e>31?no(e):u(288576e5);default:return zi('Invalid month: "'+Ze(t)+'"')}},f(_i,f(_i,f(_i,Ii(e(function(n,r,t){return S(n,r,t)})),f(Si,Zi(4),Ri("-"))),f(Si,Zi(2),Ri("-"))),Zi(2))),uo=e(function(n,r,t){return n*(60*r+t)}),ao=f(xi,function(n){return Hi(A([f(_i,f(_i,f(_i,f(_i,f(_i,f(Si,Ii(Xi(n)),Ri("T")),f(Si,Zi(2),Ri(":"))),f(Si,Zi(2),Ri(":"))),Zi(2)),Hi(A([f(_i,f(Si,Ii(ct),Ri(".")),Ui),Ii(0)]))),Hi(A([f(qi,function(){return 0},Ri("Z")),f(_i,f(_i,f(_i,Ii(uo),Hi(A([f(qi,function(){return 1},Ri("+")),f(qi,function(){return-1},Ri("-"))]))),f(Si,Zi(2),Ri(":"))),Zi(2))]))),f(Si,Ii(l(Xi,n,0,0,0,0,0)),Mi)]))},eo),co=function(n){return f(Hc,it(0),f(Ai,ao,n+".000Z"))},io=function(n){var r=f(pe,w,n.cl),t=f(pe,w,n.bU),e=f(pe,w,n.bG);return{aO:f(xe,nu(", "),A([e,r,t])),bM:co(n.bL),bn:"",ch:co(n.cg),aF:pi(n.aG),aG:n.aG,bs:n.bO}},oo=e(function(n,r,t){var e=f(pe,w,t.cl),u=f(pe,w,t.bU),a=f(pe,w,t.bG);return{aO:f(xe,nu(", "),A([a,e,u])),bM:co(t.bL),bn:n,ch:co(t.cg),aF:{aR:"black",br:r},aG:t.aG,bs:t.bO}}),fo=e(function(n,r,t){return f(xe,f(oo,n,r),t)}),bo=Dr("blur"),so=(Ju=it,Y(function(n){n(F(Ju(Date.now())))})),vo=t(function(n,r){switch(n.$){case 0:return P(r,Tc);case 2:var t=n.a,e=D(r.cf.cr,660)<0?2:r.bm.by?1:0;return P(q(r,{bE:f(Qt,e,t),bJ:$e(t)}),b(wc,t,r.cc.T,r.bm));case 1:var u=n.a;if(u.$)return P(q(r,{bN:$e(u.a),b1:!1}),Tc);var a=u.a,c=1===(G=a.ax).$?w:b(fo,"Hack2g2","#00ff1d",G.a.bP),i=f(xe,io,a.b8.bP),o=1===(M=a.at).$?w:b(fo,"Custom","#d82727",M.a.bP),s=f(Ua,Gi(Uu),bo("select-group")),v=$e(B(i,B(c,o)));return P(q(r,{bI:v,bN:Kt,b1:!1}),s);case 3:var l=n.a,d={aV:l,bm:r.bm},h=f(pe,{P:"Cyber1 TD2",T:"12"},f(me,function(n){return C(n.T,l)},zt)),g=(r.b1||r.b2?P(!1,Tc):P(!0,xc(b(wc,r.bE.as,l,r.bm)))).b;return P(q(r,{b1:!0,b2:!0,cc:h}),kc(A([va(d),g])));case 15:return P(q(r,{b1:!0,b2:!0}),xc(b(wc,r.bE.as,r.cc.T,r.bm)));case 8:return P(q(r,{bE:f(Ku,n.a,r.bE)}),Tc);case 6:return f(Ac,r,zu);case 5:return f(Ac,r,Qu);case 4:var $=n.a;return P(q(r,{cf:{bW:dt($.bu.bW),cr:dt($.bu.cr)}}),f(su,na,so));case 7:var m=n.a,p=function(){switch(m){case 39:return f(Ac,r,zu);case 37:return f(Ac,r,Qu);default:return P(r,Tc)}}();return s=p.b,P(q(T=p.a,{cb:f(oa,m,r.cb)}),s);case 9:var y=f(ma,n.a,r.ck);return g=(N=f(ha,y,70)).$?Tc:f(su,ct,Te(N.a?Xu:Zu)),P(q(r,{ck:y}),g);case 10:return f(Ac,r,{$:5,a:f(pe,it(0),r.bJ)});case 12:return P(q(r,{b2:!1}),Tc);case 11:var k=q(x=r.bm,{b3:!x.b3});return d={aV:r.cc.T,bm:k},P(q(r,{bm:k}),va(d));case 13:var T,E=n.a,j=q(x=r.bm,{by:1===E});return d={aV:(T=f(Ac,r,{$:4,a:E}).a).cc.T,bm:j},P(q(T,{bm:j}),va(d));default:var x,O=n.b;return j=q(x=r.bm,n.a?{cd:O}:{ce:O}),d={aV:r.cc.T,bm:j},s=kc(A([b(wc,r.bE.as,r.cc.T,j),va(d)])),P(q(r,{b1:!0,b2:!0,bm:j}),xc(s))}var N,M,G}),lo=Yr,ho=t(function(n,r){switch(f(Qr,7,f(Et,f(xt,n,r),1440))){case 0:return 3;case 1:return 4;case 2:return 5;case 3:return 6;case 4:return 0;case 5:return 1;default:return 2}}),go=function(n){var r=f(ho,lo,n);return function(){switch(r){case 0:return"Lundi";case 1:return"Mardi";case 2:return"Mercredi";case 3:return"Jeudi";case 4:return"Vendredi";case 5:return"Samedi";default:return"Dimanche"}}()+" "+Ze(f(Nt,lo,n))},$o={$:3},mo={$:2},po=Kn("button"),yo=Kn("div"),wo=Kn("span"),ko=Yn,To=t(function(n,r){return f(Zn,n,sa(r))}),Ao=To("className"),Eo=Un,jo=t(function(n,r){return f(Eo,n,{$:0,a:r})}),xo=function(n){return f(jo,"click",du(n))},Co=Gi(""),Oo=t(function(n,r){return f(nr,function(n){return/^(on|formAction$)/i.test(n)?"data-"+n:n}(n),rr(r))}),No=Xn,Do=e(function(n,r,t){return A([f(No,"background-color",t),f(No,"color",r),f(Oo,"data-title",n),f(Oo,"data-color",r)])}),Mo=e(function(n,r,t){return u=f(It,Yr,e=n),a=f(Ht,Yr,e),((3600*f(Bt,Yr,e)+60*a+u)/86400-r)/(t-r);var e,u,a}),Go=dn,Po=t(function(n,r){var t=100*b(Mo,n,7/24,.875),e=Go(t)+"%",u=Go(100*b(Mo,r,7/24,.875)-t)+"%";return A([f(No,"top",e),f(No,"height",u),f(No,"left","2%"),f(No,"width","96%"),f(No,"position","absolute")])}),So=t(function(n,r){return b(je,t(function(r,t){return n(r)?f(Hr,r,t):t}),w,r)}),_o=function(n){return n.b},qo=function(n){return Ao(f(nu," ",f(xe,oe,f(So,_o,n))))},Bo=e(function(n,r,t){var e=Co(n.aG),u=n.ch,a=n.bM,c=n.aF.br,i=pu(n.bn)?w:A([f(No,"border-color",c)]),o=n.aF.aR,s=B(f(Po,u,a),B(b(Do,e,c,o),i));return B(A([qo(f(Hr,P(r?"":"calendar--event calendar--event-starts-and-ends",!0),t))]),s)}),Lo=function(n){return f(yo,A([Ao("calendar--event-sub")]),A([ko(n)]))},Ho=t(function(n,r){return{$:6,a:n,b:r}}),Io=t(function(n,r){return{$:7,a:n,b:r}}),Jo=b(lu,t(function(n,r){return{cu:n,cv:r}}),f(wu,"pageX",ku),f(wu,"pageY",ku)),Wo=t(function(n,r){return r.$?Kt:$e(n(r.a))}),Ro=e(function(n,r,t){var e,u,a=A([ko(n.aG)]),c=n.bs,i=f(pe,!1,f(Wo,st(c),r)),o=A([P("calendar--event-content",!0),P("calendar--event-content--is-selected",i)]),s=f(xe,Lo,n.aO);return f(yo,B(A([(u=Io(c),f(jo,"mouseenter",f(vu,u,Jo))),function(n){return f(jo,"mouseleave",du(n))}((e=c,{$:8,a:e})),function(n){return f(jo,"click",f(vu,n,Jo))}(Ho(c))]),b(Bo,n,t,o)),f(Hr,f(yo,A([Ao("calendar--event-title")]),a),s))}),Fo=e(function(n,r,t){return 1===t?Kt:$e(b(Ro,n,r,t))}),Vo=e(function(n,r,t){var e=ot(n),u=ot(r),a=ot(t);return D(e,a)<1&&D(u,a)>-1}),Yo=u(function(n,r,t,e){var u=s(Vt,15,1,Yr,e),a=b(yc,t,Yr,u),c=b(pc,t,Yr,u),i=b(Vo,c,a,r);return b(Vo,c,a,n)&&i?0:1}),Ko=e(function(n,r,t){return b(Fo,t,r,s(Yo,t.ch,t.bM,11,n))}),Qo=t(function(n,r){return b(Mu,e(function(r,t,e){return f(n,r,t)?b(tt,r,t,e):e}),Ur,r)}),zo=function(n){return n.b?$e(n.a):Kt},Uo=t(function(n,r){var u,a=b(pc,11,Kr,r);return zo((u=f(Qo,t(function(n,r){return C(r,a)}),n),b(Wr,e(function(n,r,t){return f(Hr,n,t)}),w,u)))}),Xo=function(n){return A([n])},Zo=u(function(n,r,t,e){return B(function(){var n=f(Uo,e,t);if(n.$)return w;var r=n.a;return Xo(f(yo,A([Ao("calendar--jour-ferie")]),Xo(ko(r))))}(),f(Bu,f(Ko,t,r),n))}),nf=function(){return f(yo,A([Ao("calendar--time-slot")]),w)},rf=function(){return f(yo,A([Ao("calendar--time-slot-group")]),A([nf(),nf()]))},tf=A(["7:00","8:00","9:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00"]),ef=u(function(n,r,e,u){return f(yo,A([Ao("calendar--day-slot")]),f(t(function(n,r){return B(r,n)}),s(Zo,n,r,e,u),f(xe,rf,tf)))}),uf=t(function(n,r){return f(Wt,n,r)/864e5}),af=t(function(n,r){return 12*(f(Mt,n,r)-1)+(mt(f(Dt,n,r))-1)+(f(Nt,n,r)+f(uf,n,r))/100}),cf=t(function(n,r){return _t(f(St,n,r))+f(uf,n,r)}),of=u(function(n,r,t,e){n:for(;;)switch(n){case 15:return ot(e)-ot(t);case 14:return s(of,15,r,t,e)/1e3|0;case 13:return s(of,15,r,t,e)/6e4|0;case 12:return s(of,15,r,t,e)/36e5|0;case 11:return f(cf,r,e)-f(cf,r,t)|0;case 2:return f(af,r,e)-f(af,r,t)|0;case 0:return s(of,2,r,t,e)/12|0;case 1:return s(of,2,r,t,e)/3|0;case 3:return s(of,11,r,t,e)/7|0;default:var u=n,a=r,c=b(pc,u,r,t),i=b(pc,u,r,e);n=3,r=a,t=c,e=i;continue n}}),ff=e(function(n,r,t){return f(yo,A([Ao("calendar--time-slot-group")]),A([r?ko(""):function(n){var r="GMT+"+Ze(dt(f(Rt,Yr,n)/60));return f(yo,A([Ao("calendar--date-header-zone")]),A([f(wo,w,A([ko(r)]))]))}(n),function(n){return f(yo,A([Ao("calendar--hour-slot")]),A([f(wo,A([Ao("calendar--time-slot-text")]),A([ko(n)]))]))}(t),f(yo,A([Ao("calendar--time-slot")]),w)]))}),bf=function(n){return f(yo,A([Ao("calendar--time-gutter")]),f(Hr,function(n){var r=b(yc,10,Yr,n),t=Ze(1+s(of,3,Yr,f(Yt,Yr,d(at,f(Mt,Yr,r),0,1,0,0,0,0)),r));return f(yo,A([Ao("calendar--date-header"),Ao("calendar--date-header-weeknum")]),A([f(wo,A([Ao("calendar--date")]),A([ko(t)]))]))}(n),f(Ue,ff(n),tf)))},sf=t(function(n,r){var t,e=n.aq,u=n.as,a=n.b0;return f(yo,A([Ao("calendar--day")]),A([f(yo,A([Ao("calendar--day-content")]),A([bf(u),f(yo,A([Ao("calendar--day")]),A([(t=u,f(yo,A([Ao("calendar--day-header")]),A([function(n){return f(yo,A([Ao("calendar--date-header")]),A([f(po,A([Ao("calendar--navigations-week"),xo($o)]),A([ko("<<")])),f(yo,A([Ao("calendar--date-header-content")]),A([f(po,A([Ao("calendar--navigations-day"),xo(Qu)]),A([ko("<")])),f(wo,A([Ao("calendar--date")]),A([ko(go(n))])),f(po,A([Ao("calendar--navigations-day"),xo(zu)]),A([ko(">")]))])),f(po,A([Ao("calendar--navigations-week"),xo(mo)]),A([ko(">>")]))]))}(t)]))),s(ef,r,e,u,a)]))]))]))}),vf=c(function(n,r,t,e,u,a){for(;;){if(D(ot(a),ot(e))>=0)return ce(u);var c=n,i=r,o=t,b=e,v=f(Hr,a,u),l=s(Vt,n,r,t,a);n=c,r=i,t=o,e=b,u=v,a=l}}),lf=a(function(n,r,t,e,u){return l(vf,n,f(Fr,1,r),t,u,w,b(yc,n,t,e))}),df=u(function(n,r,t,e){var u=f(xe,rf,tf),a=s(Zo,n,r,e,t);return f(yo,A([Ao("calendar--dates")]),A([f(yo,A([Ao("calendar--date-header")]),A([f(wo,A([Ao("calendar--date")]),A([ko(go(e))]))])),f(yo,A([Ao("calendar--day-slot")]),B(u,a))]))}),hf=a(function(n,r,t,e,u){var a=f(xe,b(df,n,r,u),e),c=bf(t);return f(yo,A([Ao("calendar--week-content")]),f(Hr,c,a))}),gf=e(function(n,r,t){var e=n.aq,u=n.as,a=n.b0;return f(yo,A([Ao("calendar--week")]),A([v(hf,r,e,u,t,a)]))}),$f=t(function(n,r){return b(gf,n,r,v(lf,11,1,lo,t=b(pc,4,lo,s(Vt,11,2,lo,n.as)),b(yc,9,lo,t)));var t}),mf=t(function(n,r){return b(gf,n,r,v(lf,11,1,lo,b(pc,4,lo,t=s(Vt,15,1,lo,b(pc,11,lo,n.as))),b(yc,4,lo,t)));var t}),pf=t(function(n,r){var t=function(){switch(r.ar){case 0:return f($f,r,n);case 1:return f(mf,r,n);default:return f(sf,r,n)}}();return f(yo,A([Ao("calendar--calendar")]),A([t]))}),yf=function(n){return{$:8,a:n}},wf=function(n){return{$:9,a:n}},kf=function(n){return n.a},Tf=function(n){return C(kf(n.j),n.f)},Af=function(n){var r=n.aa;return C(kf(r.j),r.f)},Ef=Kn("iframe"),jf=function(n){var r,t=n.G,u=f(nu,"&",b(Mu,e(function(n,r,t){return f(Hr,n+"="+r,t)}),w,n.B));return f(Ef,A([(0,f(nr,"width",Ze(0))),f(nr,"height",Ze(0)),(r="https://www.youtube.com/embed/"+t+"?rel=0&controls=0&showinfo=0&autoplay=1&"+u,f(To,"src",rr(r))),f(Oo,"frameborder","0"),f(Oo,"allow","autoplay; encrypted-media"),f(Oo,"allowfullscreen","1")]),w)},xf=A([{J:"Taper le Konami code",K:"",M:13,N:55,V:8,W:42,aG:"ChickenSong",Y:4},{J:"Affiche ce message",K:"",M:16,N:0,V:12,W:30,aG:"Help",Y:5},{J:"reverse(KonamiCode)",K:"",M:11,N:15,V:8,W:0,aG:"Soviet National Anthem 31 ",Y:6},{J:"Type S A M B A",K:"",M:19,N:0,V:17,W:0,aG:"Samba \ud83c\udf89",Y:7}]),Cf=t(function(n,r){var t=b(yc,r.Y,Yr,b(pc,4,Yr,n)),e=s(Vt,13,r.W,Yr,s(Vt,12,r.V,Yr,t)),u=s(Vt,13,r.N,Yr,s(Vt,12,r.M,Yr,t));return{aO:A([r.J,r.K]),bM:u,bn:"",ch:e,aF:pi(r.aG),aG:r.aG,bs:r.aG}}),Of=t(function(n,r){return{$:14,a:n,b:r}}),Nf=Kn("input"),Df=Kn("label"),Mf=t(function(n,r){return f(Zn,n,fa(r))}),Gf=Mf("checked"),Pf=To("htmlFor"),Sf=To("id"),_f=To("type"),qf=t(function(n,r){return b(je,wu,r,n)}),Bf={$:3},Lf=f(qf,A(["target","checked"]),Bf),Hf=function(n){return f(jo,"change",f(vu,n,Lf))},If=t(function(n,r){return f(yo,w,A([f(po,A([xo((t=n,{$:13,a:t})),f(Oo,"aria-label","Toggle Mode "+r)]),A([ko(r)]))]));var t}),Jf=function(n){return{$:3,a:n}},Wf=Kn("option"),Rf=To("value"),Ff=function(n){return f(Wf,A([Rf(n.T)]),A([ko(n.P)]))},Vf=Kn("select"),Yf=Mf("multiple"),Kf=f(qf,A(["target","value"]),Aa),Qf=Kn("a"),zf=Kn("i"),Uf=To("title"),Xf=e(function(n,r,t){var e,u,a=t.b3,c=t.cd,i=t.ce;return f(yo,A([Ao("sidemenu--container"),f(No,"display",a?"flex":"none")]),A([f(yo,A([Ao("sidemenu--main")]),A([(u=n,f(yo,A([Ao("sidemenu--selector")]),A([f(Df,A([Pf("select-group")]),A([ko("Groupes")])),f(Vf,A([Ao("sidemenu--selector"),f(No,"color","white"),Sf("select-group"),f(jo,"change",f(vu,Jf,Kf)),Rf(u.T),Yf(!1)]),f(xe,Ff,zt))]))),(e=i,f(yo,A([Ao("md-checkbox")]),A([f(Nf,A([Sf("check-hack2g2"),_f("checkbox"),Gf(e),Hf(Of(0))]),w),f(Df,A([Pf("check-hack2g2")]),A([ko("Hack2g2")]))]))),function(n){return f(yo,A([Ao("md-checkbox")]),A([f(Nf,A([Sf("check-custom"),_f("checkbox"),Gf(n),Hf(Of(1))]),w),f(Df,A([Pf("check-custom")]),A([ko("Custom")]))]))}(c),f(If,0,"Week"),f(If,1,"All Week"),f(If,2,"Day")])),f(yo,A([Ao("sidemenu--footer")]),A([f(yo,A([Ao("sidemenu--footer-content")]),A([f(Qf,A([Uf("Click me")]),A([f(zf,A([Ao("icon-secure")]),w)])),f(wo,w,A([ko("Secured by CP")]))]))]))]))}),Zf=function(n){return{$:2,a:n}},nb=function(n){return{$:0,a:n}},rb=t(function(n,r){return{q:n,I:r}}),tb={$:4},eb=b(lu,t(function(n,r){return{x:r,ab:n}}),f(wu,"identifier",ku),b(lu,rb,f(wu,"clientX",tb),f(wu,"clientY",tb))),ub=f(qf,A(["changedTouches","0"]),eb),ab=t(function(n,r){return f(Eo,n,{$:1,a:r})}),cb=e(function(n,r,t){return f(ab,n,f(vu,function(n){return P(n,!0)},f(vu,t,f(vu,r,ub))))}),ib=function(n){return f(cb,"touchend",n)},ob=function(n){return f(cb,"touchstart",n)},fb=e(function(n,r,t){var e=n.br,u=n.aR,a=t.cr,c=t.bW,i=function(){if(r.$)return A([f(No,"bottom","0")]);var n=r.a,t=Ze(f(Fr,0,f(bt,c-152,n.cv))),e=Ze(f(Fr,0,f(bt,a-252,n.cu-125)));return A([f(No,"left",e+"px"),f(No,"top",t+"px")])}();return B(A([f(No,"background-color",u),f(No,"color",e)]),i)}),bb=t(function(n,r){var t=r.aR,e=r.br;return f(wo,A([Ao("tooltip--event-badge"),f(No,"background-color",e),f(No,"color",t)]),A([ko(n)]))}),sb=function(n){var r=b(bc,2,"0",Ze(f(Ht,Yr,n)));return Ze(f(Bt,Yr,n))+":"+r},vb=e(function(n,r,t){if(t.$)return w;var e,u=t.a,a=pu(u.bn)?w:A([f(bb,u.bn,u.aF)]),c=B(A([ko(u.aG)]),a);return A([f(yo,B(A([Ao("tooltip--event")]),b(fb,u.aF,n,r)),B(A([f(yo,A([Ao("tooltip--event-title")]),c),f(yo,A([Ao("tooltip--event-sub"),Ao("tooltip--event-hours")]),A([function(n){return ko(sb(n.ch)+" - "+sb(n.bM))}(u)]))]),(e=u.aO,f(xe,function(n){return f(yo,A([Ao("tooltip--event-sub")]),A([ko(n)]))},f(So,function(n){return!pu(n)},e)))))])}),lb=u(function(n,r,t,e){var u=function(){if(n.$)return w;var u=n.a;return b(vb,r,e,zo(f(So,function(n){return C(n.bs,u)},t)))}();return f(yo,A([Ao("tooltip")]),u)}),db={$:10},hb=t(function(n,r){return f(yo,A([Ao("main--navigatiors-action")]),A([f(po,n,r)]))}),gb={$:15},$b=f(hb,A([Ao("main--navigatiors-button"),xo({$:11}),f(Oo,"aria-label","Toggle Menu")]),A([f(zf,A([Ao("icon-menu")]),w)])),mb=t(function(n,r){var t=n?A([f(hb,A([Ao("main--navigatiors-button"),xo(Xu),f(Oo,"aria-label","Previous Page")]),A([f(zf,A([Ao("icon-left")]),w)])),f(hb,A([Ao("main--navigatiors-button"),xo(Zu),f(Oo,"aria-label","Next Page")]),A([f(zf,A([Ao("icon-right")]),w)]))]):w;return f(yo,A([Ao("main--paginators")]),f(Hr,$b,B(t,A([f(hb,A([Ao("main--navigatiors-today"),xo(db),f(Oo,"aria-label","Today")]),A([ko("aujourd'hui")])),function(n){return f(hb,A([qo(A([P("main--navigatiors-button",!0),P("main--navigatiors-reload",!0),P("loop",n)])),xo(gb),f(Oo,"aria-label","Reload")]),A([f(zf,A([Ao("icon-reload")]),w)]))}(r)]))))}),pb=Kn("h2"),yb=u(function(n,r,t,e){return f(yo,A([Ao("main--toolbar")]),A([f(mb,t,e),function(n){return f(yo,A([Ao("main--month-title")]),A([f(pb,w,A([ko((r=n,t=Ze(f(Mt,Yr,r)),e=f(Dt,Yr,r),function(){switch(e){case 0:return"Janvier";case 1:return"F\xe9vrier";case 2:return"Mars";case 3:return"Avril";case 4:return"Mai";case 5:return"Juin";case 6:return"Juillet";case 7:return"Ao\xfbt";case 8:return"Septembre";case 9:return"Octobre";case 10:return"Novembre";default:return"D\xe9cembre"}}()+" "+t))]))]));var r,t,e}(r)]))}),wb=zn,kb=$n;Wu={Main:{init:Ar({b_:function(n){return P(f(ye,n.bm,n.aV),f(su,Sr,yu))},cj:function(){return Vu(f(vu,Au,Tu))},co:vo,cq:function(n){var r,t,e=(r=n.cb,f(yo,A([f(No,"height","0")]),f(xe,jf,f(So,Tf,r.S)))),u=Af(n.cb)?f(xe,Cf(n.bE.as),xf):f(pe,w,n.bI),a=D(n.cf.cr,660)<0?n.bE.aq:n.bE.ao,c=B(A([f(ob,nb,t=wf),f(ib,Zf,t)]),B(A([Ao("main--container")]),function(n){return B(Af(n)?A([Ao("fun-help")]):w,f(xe,f(ec,function(n){return n.w},Ao),f(So,Tf,n.S)))}(n.cb)));return{bB:A([f(yo,c,A([s(yb,n.cc,n.bE.as,2!==n.bE.ar,n.b2),f(yo,A([Ao("main--calendar")]),A([b(Xf,n.cc,n.bE.ar,n.bm),f(wb,yf,f(pf,u,n.bE))])),function(n){var r,t=(r=n.bN).$?n.b1?P("Loading...",!0):P("",!1):P(function(){switch(r.a.$){case 0:return"BadUrl";case 1:return"Timeout";case 2:return"Network Error";case 3:return"BadStatus";default:return"BadPayload"}}(),!0),e=t.a;return f(yo,A([Ao("main--message "+(t.b?"":"hidden"))]),A([ko(e)]))}(n),s(lb,a,n.bE.aC,u,n.cf),e]))]),aG:"Planning - "+n.cc.P}}})(f(kb,function(n){return f(kb,function(r){return du({aV:r,bm:n})},f(wu,"group",Aa))},f(wu,"settings",f(kb,function(n){return f(kb,function(r){return f(kb,function(t){return f(kb,function(e){return du({by:e,b3:t,cd:r,ce:n})},f(wu,"allWeek",Bf))},f(wu,"menuOpened",Bf))},f(wu,"showCustom",Bf))},f(wu,"showHack2g2",Bf)))))(0)}},n.Elm?function n(r,t){for(var e in t)e in r?"init"==e?x(6):n(r[e],t[e]):r[e]=t[e]}(n.Elm,Wu):n.Elm=Wu}(this)},function(n,r,t){t(3),n.exports=t(10)},,,,,,,,function(n,r,t){"use strict";t.r(r),t(11),t(12),t(13),t(14),t(15),t(16),t(17),t(18);var e=t(1);function u(n,r,t){return r in n?Object.defineProperty(n,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[r]=t,n}var a={showHack2g2:!0,showCustom:!0,menuOpened:!1,allWeek:!1},c=new URLSearchParams(window.location.search).get("g")||localStorage.getItem("group")||"",i=function(){var n=localStorage.getItem("settings");if(void 0==n)return a;try{var r=JSON.parse(n);return function(n){for(var r=1;rs){for(var e=0,r=o.length-i;e-1};c.prototype.append=function(t,e){t=u(t),e=a(e);var r=this.map[t];this.map[t]=r?r+","+e:e},c.prototype.delete=function(t){delete this.map[u(t)]},c.prototype.get=function(t){return t=u(t),this.has(t)?this.map[t]:null},c.prototype.has=function(t){return this.map.hasOwnProperty(u(t))},c.prototype.set=function(t,e){this.map[u(t)]=a(e)},c.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},c.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),f(t)},c.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),f(t)},c.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),f(t)},e.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);var i=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},p.call(b.prototype),p.call(_.prototype),_.prototype.clone=function(){return new _(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},_.error=function(){var t=new _(null,{status:0,statusText:""});return t.type="error",t};var s=[301,302,303,307,308];_.redirect=function(t,e){if(-1===s.indexOf(e))throw new RangeError("Invalid status code");return new _(null,{status:e,headers:{location:t}})},t.Headers=c,t.Request=b,t.Response=_,t.fetch=function(t,r){return new Promise(function(n,o){var i=new b(t,r),s=new XMLHttpRequest;s.onload=function(){var t,e,r={status:s.status,statusText:s.statusText,headers:(t=s.getAllResponseHeaders()||"",e=new c,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};r.url="responseURL"in s?s.responseURL:r.headers.get("X-Request-URL"),n(new _("response"in s?s.response:s.responseText,r))},s.onerror=function(){o(new TypeError("Network request failed"))},s.ontimeout=function(){o(new TypeError("Network request failed"))},s.open(i.method,i.url,!0),"include"===i.credentials?s.withCredentials=!0:"omit"===i.credentials&&(s.withCredentials=!1),"responseType"in s&&e.blob&&(s.responseType="blob"),i.headers.forEach(function(t,e){s.setRequestHeader(e,t)}),s.send("undefined"===typeof i._bodyInit?null:i._bodyInit)})},t.fetch.polyfill=!0}function u(t){if("string"!==typeof t&&(t+=""),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function a(t){return"string"!==typeof t&&(t+=""),t}function f(t){var r={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return e.iterable&&(r[Symbol.iterator]=function(){return r}),r}function c(t){this.map={},t instanceof c?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function l(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function h(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function d(t){var e=new FileReader,r=h(e);return e.readAsArrayBuffer(t),r}function y(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function p(){return this.bodyUsed=!1,this._initBody=function(t){if(this._bodyInit=t,t)if("string"===typeof t)this._bodyText=t;else if(e.blob&&Blob.prototype.isPrototypeOf(t))this._bodyBlob=t;else if(e.formData&&FormData.prototype.isPrototypeOf(t))this._bodyFormData=t;else if(e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t))this._bodyText=""+t;else if(e.arrayBuffer&&e.blob&&n(t))this._bodyArrayBuffer=y(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!e.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(t)&&!o(t))throw Error("unsupported BodyInit type");this._bodyArrayBuffer=y(t)}else this._bodyText="";this.headers.get("content-type")||("string"===typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},e.blob&&(this.blob=function(){var t=l(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(d)}),this.text=function(){var t,e,r,n=l(this);if(n)return n;if(this._bodyBlob)return t=this._bodyBlob,r=h(e=new FileReader),e.readAsText(t),r;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=Array(e.length),n=0;n-1?n:r),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function m(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function _(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new c(e.headers),this.url=e.url||"",this._initBody(t)}}("undefined"!==typeof self?self:this)},function(t){"use strict";var e=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t){for(var o,i,s=function(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),u=1;us){for(var e=0,r=o.length-i;e-1};c.prototype.append=function(t,e){t=a(t),e=u(e);var r=this.map[t];this.map[t]=r?r+","+e:e},c.prototype.delete=function(t){delete this.map[a(t)]},c.prototype.get=function(t){return t=a(t),this.has(t)?this.map[t]:null},c.prototype.has=function(t){return this.map.hasOwnProperty(a(t))},c.prototype.set=function(t,e){this.map[a(t)]=u(e)},c.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},c.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),f(t)},c.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),f(t)},c.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),f(t)},e.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);var i=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},p.call(b.prototype),p.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},w.error=function(){var t=new w(null,{status:0,statusText:""});return t.type="error",t};var s=[301,302,303,307,308];w.redirect=function(t,e){if(-1===s.indexOf(e))throw new RangeError("Invalid status code");return new w(null,{status:e,headers:{location:t}})},t.Headers=c,t.Request=b,t.Response=w,t.fetch=function(t,r){return new Promise(function(n,o){var i=new b(t,r),s=new XMLHttpRequest;s.onload=function(){var t,e,r={status:s.status,statusText:s.statusText,headers:(t=s.getAllResponseHeaders()||"",e=new c,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};r.url="responseURL"in s?s.responseURL:r.headers.get("X-Request-URL");var o="response"in s?s.response:s.responseText;n(new w(o,r))},s.onerror=function(){o(new TypeError("Network request failed"))},s.ontimeout=function(){o(new TypeError("Network request failed"))},s.open(i.method,i.url,!0),"include"===i.credentials?s.withCredentials=!0:"omit"===i.credentials&&(s.withCredentials=!1),"responseType"in s&&e.blob&&(s.responseType="blob"),i.headers.forEach(function(t,e){s.setRequestHeader(e,t)}),s.send("undefined"===typeof i._bodyInit?null:i._bodyInit)})},t.fetch.polyfill=!0}function a(t){if("string"!==typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function u(t){return"string"!==typeof t&&(t=String(t)),t}function f(t){var r={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return e.iterable&&(r[Symbol.iterator]=function(){return r}),r}function c(t){this.map={},t instanceof c?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function l(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function h(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function d(t){var e=new FileReader,r=h(e);return e.readAsArrayBuffer(t),r}function y(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function p(){return this.bodyUsed=!1,this._initBody=function(t){if(this._bodyInit=t,t)if("string"===typeof t)this._bodyText=t;else if(e.blob&&Blob.prototype.isPrototypeOf(t))this._bodyBlob=t;else if(e.formData&&FormData.prototype.isPrototypeOf(t))this._bodyFormData=t;else if(e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t))this._bodyText=t.toString();else if(e.arrayBuffer&&e.blob&&n(t))this._bodyArrayBuffer=y(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!e.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(t)&&!o(t))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=y(t)}else this._bodyText="";this.headers.get("content-type")||("string"===typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},e.blob&&(this.blob=function(){var t=l(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(d)}),this.text=function(){var t,e,r,n=l(this);if(n)return n;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,r=h(e),e.readAsText(t),r;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n-1?n:r),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function m(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function w(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new c(e.headers),this.url=e.url||"",this._initBody(t)}}("undefined"!==typeof self?self:this)},function(t,e,r){"use strict";var n=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,s,a=function(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),u=1;u - - - - + + + + + + Cyber Planning diff --git a/public/login.html b/public/login.html new file mode 100644 index 0000000..dfffe25 --- /dev/null +++ b/public/login.html @@ -0,0 +1,174 @@ + + + + + + + Cyberplanning + + + + + +
+
+

Cyber Planning

+
+ +
+ + + + \ No newline at end of file diff --git a/public/logo.gif b/public/logo.gif new file mode 100644 index 0000000..a251b09 Binary files /dev/null and b/public/logo.gif differ diff --git a/public/logo.min.gif b/public/logo.min.gif new file mode 100644 index 0000000..55453bc Binary files /dev/null and b/public/logo.min.gif differ diff --git a/public/logo.min.html b/public/logo.min.html new file mode 100644 index 0000000..7306356 --- /dev/null +++ b/public/logo.min.html @@ -0,0 +1,6882 @@ + + + + + + + + Logo ENSIBS + + + + + + + + + + + + \ No newline at end of file diff --git a/public/manifest.json b/public/manifest.json index 0a45f6a..17262a1 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,15 +1,22 @@ { "short_name": "Cyber Planning", - "name": "An awesome planning for cyber elite", + "name": "Cyber Planning - What I will learn today?", + "description": "An awesome planning for cyber elite", "icons": [ { - "src": "favicon.ico", - "sizes": "192x192", - "type": "image/png" + "src": "/images/logo-192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "/images/logo-512.png", + "type": "image/png", + "sizes": "512x512" } ], "start_url": "./index.html", + "scope": "/", "display": "standalone", - "theme_color": "#ecf0f1", + "theme_color": "#124368", "background_color": "#2d3436" } diff --git a/src/Calendar/Calendar.elm b/src/Calendar/Calendar.elm index f426645..33e2114 100644 --- a/src/Calendar/Calendar.elm +++ b/src/Calendar/Calendar.elm @@ -3,9 +3,8 @@ module Calendar.Calendar exposing (State, init, page, update, view) import Calendar.Day as Day import Calendar.Event exposing (Event) import Calendar.JourFerie exposing (getAllJourFerie) -import Calendar.Msg exposing (Msg(..), TimeSpan(..)) +import Calendar.Msg exposing (InternalState, Msg(..), TimeSpan(..)) import Calendar.Week as Week -import Dict exposing (Dict) import Html exposing (..) import Html.Attributes exposing (class) import Html.Events exposing (keyCode, on) @@ -16,12 +15,7 @@ import TimeZone exposing (europe__paris) type alias State = - { timeSpan : TimeSpan - , viewing : Posix - , hover : Maybe String - , selected : Maybe String - , joursFeries : Dict String Posix - } + InternalState init : TimeSpan -> Posix -> State @@ -29,6 +23,7 @@ init timeSpan viewing = { timeSpan = timeSpan , viewing = viewing , hover = Nothing + , position = Nothing , selected = Nothing , joursFeries = getAllJourFerie (Time.toYear europe__paris viewing) } @@ -56,14 +51,14 @@ update msg state = ChangeViewing viewing -> { state | viewing = viewing } - EventClick eventId -> - { state | selected = Just eventId } + EventClick eventId pos -> + { state | selected = Just eventId, position = Just pos } - EventMouseEnter eventId -> - { state | hover = Just eventId } + EventMouseEnter eventId pos -> + { state | hover = Just eventId, position = Just pos } EventMouseLeave eventId -> - { state | hover = Nothing } + { state | hover = Nothing, selected = Nothing } page : Int -> State -> State @@ -83,22 +78,22 @@ page step state = Day -> TimeExtra.Day in - { state | viewing = TimeExtra.add interval step europe__paris viewing, hover = Nothing } + { state | viewing = TimeExtra.add interval step europe__paris viewing, hover = Nothing, selected = Nothing } view : List Event -> State -> Html Msg -view events { viewing, timeSpan, selected, joursFeries } = +view events state = let calendarView = - case timeSpan of + case state.timeSpan of Week -> - Week.view events selected viewing joursFeries + Week.view state events AllWeek -> - Week.viewAll events selected viewing joursFeries + Week.viewAll state events Day -> - Day.view events selected viewing joursFeries + Day.view state events in div [ class "calendar--calendar" ] diff --git a/src/Calendar/Day.elm b/src/Calendar/Day.elm index 17be6c2..bd9b7e4 100644 --- a/src/Calendar/Day.elm +++ b/src/Calendar/Day.elm @@ -3,23 +3,25 @@ module Calendar.Day exposing (view, viewAllDayCell, viewDate, viewDayEvent, view import Calendar.Event exposing (Event, maybeViewDayEvent, rangeDescription) import Calendar.Helpers as Helpers import Calendar.JourFerie exposing (jourFerie) -import Calendar.Msg exposing (Msg(..)) +import Calendar.Msg exposing (InternalState, Msg(..)) import Dict exposing (Dict) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onClick) import Time exposing (Posix) import Time.Extra as TimeExtra +import TimeZone exposing (europe__paris) -view : List Event -> Maybe String -> Posix -> Dict String Posix -> Html Msg -view events selectedId day feries = +view : InternalState -> List Event -> Html Msg +view { selected, viewing, joursFeries } events = div [ class "calendar--day" ] - [ viewDayHeader day - , div [ class "calendar--day-content" ] - [ viewTimeGutter day + [ div [ class "calendar--day-content" ] + [ viewTimeGutter viewing , div [ class "calendar--day" ] - [ viewDaySlot events selectedId day feries ] + [ viewDayHeader viewing + , viewDaySlot events selected viewing joursFeries + ] ] ] @@ -40,27 +42,64 @@ viewDate day = viewDayHeader : Posix -> Html Msg viewDayHeader day = div [ class "calendar--day-header" ] - [ viewTimeGutterHeader - , viewDate day + [ viewDate day ] viewTimeGutter : Posix -> Html Msg -viewTimeGutter _ = +viewTimeGutter viewing = Helpers.hours - |> List.map viewTimeSlotGroup + |> List.indexedMap (viewTimeSlotGroup viewing) + |> (::) (viewTimeGutterHeader viewing) |> div [ class "calendar--time-gutter" ] -viewTimeGutterHeader : Html Msg -viewTimeGutterHeader = - div [ class "calendar--time-gutter" ] [] +viewTimeGutterHeader : Posix -> Html Msg +viewTimeGutterHeader viewing = + let + date = + viewing + |> TimeExtra.ceiling TimeExtra.Sunday europe__paris + + year = + Time.toYear europe__paris date + + weekNum = + TimeExtra.diff TimeExtra.Week + europe__paris + (TimeExtra.partsToPosix europe__paris (TimeExtra.Parts year Time.Jan 1 0 0 0 0)) + date + |> (+) 1 + |> String.fromInt + in + div [ class "calendar--date-header", class "calendar--date-header-weeknum" ] + [ span [ class "calendar--date" ] [ text weekNum ] + ] + +viewTimeGutterZone : Posix -> Html Msg +viewTimeGutterZone viewing = + let + offset = + viewing + |> TimeExtra.toOffset europe__paris + |> toFloat + + zone = offset / 60 + |> floor + |> String.fromInt + |> (++) "GMT+" + + in + div [ class "calendar--date-header-zone" ] + [ span [ ] [ text zone ] + ] -viewTimeSlotGroup : String -> Html Msg -viewTimeSlotGroup date = +viewTimeSlotGroup : Posix -> Int -> String -> Html Msg +viewTimeSlotGroup viewing idx date = div [ class "calendar--time-slot-group" ] - [ viewHourSlot date + [ if idx == 0 then viewTimeGutterZone viewing else text "" + , viewHourSlot date , div [ class "calendar--time-slot" ] [] ] diff --git a/src/Calendar/Event.elm b/src/Calendar/Event.elm index 6396469..5913872 100644 --- a/src/Calendar/Event.elm +++ b/src/Calendar/Event.elm @@ -1,30 +1,33 @@ -module Calendar.Event exposing (Event, EventRange(..), cellWidth, eventSegment, eventStyling, maybeViewDayEvent, offsetLength, offsetPercentage, percentDay, rangeDescription, rowSegment, styleDayEvent, styleRowSegment) +module Calendar.Event exposing (Style, Event, EventRange(..), cellWidth, eventSegment, eventStyling, maybeViewDayEvent, offsetLength, offsetPercentage, percentDay, rangeDescription, rowSegment, styleDayEvent, styleRowSegment) import Calendar.Helpers as Helpers -import Calendar.Msg exposing (Msg(..), TimeSpan(..)) +import Calendar.Msg exposing (Msg(..), TimeSpan(..), onMouseEnter, onClick) import Html exposing (..) import Html.Attributes exposing (attribute, class, classList, style) -import Html.Events exposing (..) +import Html.Events exposing (onMouseLeave) import Iso8601 import String -import String.Extra +-- import String.Extra import Time exposing (Posix, Weekday(..)) import Time.Extra as TimeExtra import TimeZone exposing (europe__paris) +type alias Style = + { eventColor : String + , textColor : String + } + type alias Event = { toId : String , title : String , startTime : Posix , endTime : Posix - , classrooms : List String - , teachers : List String - , groups : List String - , color : String + , description : List String + , source : String + , style : Style } - type EventRange = StartsAndEnds | ExistsOutside @@ -69,8 +72,11 @@ eventStyling event eventRange customClasses = eventEnd = event.endTime - eventColor = - event.color + colorBg = + event.style.eventColor + + colorFg = + event.style.textColor eventTitle = escapeTitle event.title @@ -83,8 +89,16 @@ eventStyling event eventRange customClasses = ExistsOutside -> "" + extraStyle = + if String.isEmpty event.source then + [] + else + [ style "border-color" colorFg ] + styles = - styleDayEvent eventStart eventEnd eventColor eventTitle + styleDayEvent eventStart eventEnd + ++ styleColorDayEvent eventTitle colorFg colorBg + ++ extraStyle in [ classList (( classes, True ) :: customClasses) ] ++ styles @@ -109,14 +123,14 @@ percentDay date min max = (fractionalDay date - min) / (max - min) -styleDayEvent : Posix -> Posix -> String -> String -> List (Html.Attribute msg) -styleDayEvent start end color title = +styleDayEvent : Posix -> Posix -> List (Html.Attribute msg) +styleDayEvent start end = let startPercent = - 100 * percentDay start (7 / 24) (20 / 24) + 100 * percentDay start (7 / 24) (21 / 24) endPercent = - 100 * percentDay end (7 / 24) (20 / 24) + 100 * percentDay end (7 / 24) (21 / 24) height = (String.fromFloat <| endPercent - startPercent) ++ "%" @@ -129,9 +143,14 @@ styleDayEvent start end color title = , style "left" "2%" , style "width" "96%" , style "position" "absolute" - , style "background-color" color + ] + +styleColorDayEvent : String -> String -> String -> List (Html.Attribute msg) +styleColorDayEvent title fg bg = + [ style "background-color" bg + , style "color" fg , attribute "data-title" title - , attribute "data-color" color + , attribute "data-color" fg ] @@ -159,19 +178,22 @@ eventSegment event selectedId eventRange = [ ( "calendar--event-content", True ) , ( "calendar--event-content--is-selected", isSelected ) ] + + title = + [ text event.title ] + + childs = + List.map viewSub event.description + in div ([ onMouseEnter <| EventMouseEnter eventId , onMouseLeave <| EventMouseLeave eventId - , onClick <| EventMouseEnter eventId + , onClick <| EventClick eventId ] ++ eventStyling event eventRange classes ) - [ div [ class "calendar--event-title" ] [ makeTitle event.title ] - , div [ class "calendar--event-sub" ] [ text <| String.join "," event.classrooms ] - , div [ class "calendar--event-sub" ] [ text <| String.join "," event.teachers ] - , div [ class "calendar--event-sub" ] [ text <| String.join "," event.groups ] - ] + (( div [ class "calendar--event-title" ] title ) :: childs) makeTitle : String -> Html Msg @@ -179,6 +201,11 @@ makeTitle title = text title +viewSub : String -> Html Msg +viewSub val = + div [ class "calendar--event-sub" ] [ text val ] + + cellWidth : Float cellWidth = 100.0 / 7 @@ -230,8 +257,9 @@ isBetween start end current = escapeTitle : String -> String escapeTitle = - String.Extra.removeAccents - >> String.Extra.underscored + always "" + -- String.Extra.removeAccents + -- >> String.Extra.underscored weekdayToNumber : Weekday -> Int diff --git a/src/Calendar/Helpers.elm b/src/Calendar/Helpers.elm index fb21b14..6568511 100644 --- a/src/Calendar/Helpers.elm +++ b/src/Calendar/Helpers.elm @@ -64,6 +64,7 @@ hours = , "17:00" , "18:00" , "19:00" + , "20:00" ] diff --git a/src/Calendar/Msg.elm b/src/Calendar/Msg.elm index 5cecf68..65662b7 100644 --- a/src/Calendar/Msg.elm +++ b/src/Calendar/Msg.elm @@ -1,6 +1,10 @@ -module Calendar.Msg exposing (Msg(..), TimeSpan(..)) +module Calendar.Msg exposing (InternalState, Msg(..), TimeSpan(..), Position, position, onMouseEnter, onClick) +import Dict exposing (Dict) import Time exposing (Posix) +import Json.Decode as Json +import Html exposing (Attribute) +import Html.Events exposing (on) type TimeSpan @@ -16,6 +20,41 @@ type Msg | WeekBack | ChangeTimeSpan TimeSpan | ChangeViewing Posix - | EventClick String - | EventMouseEnter String + | EventClick String Position + | EventMouseEnter String Position | EventMouseLeave String + + +type alias InternalState = + { timeSpan : TimeSpan + , viewing : Posix + , hover : Maybe String + , position : Maybe Position + , selected : Maybe String + , joursFeries : Dict String Posix + } + + +type alias Position = + { x : Int + , y : Int + } + + +{-| The decoder used to extract a `Position` from a JavaScript mouse event. +-} +position : Json.Decoder Position +position = + Json.map2 Position + (Json.field "pageX" Json.int) + (Json.field "pageY" Json.int) + + +onMouseEnter : (Position -> msg) -> Attribute msg +onMouseEnter msg = + on "mouseenter" (Json.map msg position) + + +onClick : (Position -> msg) -> Attribute msg +onClick msg = + on "click" (Json.map msg position) diff --git a/src/Calendar/Week.elm b/src/Calendar/Week.elm index c53b27e..7e7d786 100644 --- a/src/Calendar/Week.elm +++ b/src/Calendar/Week.elm @@ -1,32 +1,31 @@ -module Calendar.Week exposing (view, viewAll, viewDate, viewDates, viewWeekContent, viewWeekDay, viewWeekHeader) +module Calendar.Week exposing (view, viewAll, viewWeekContent, viewWeekDay) import Calendar.Day exposing (viewAllDayCell, viewDayEvents, viewDaySlotGroup, viewTimeGutter, viewTimeGutterHeader) import Calendar.Event exposing (Event) import Calendar.Helpers as Helpers -import Calendar.Msg exposing (Msg(..)) +import Calendar.Msg exposing (InternalState, Msg(..)) import Dict exposing (Dict) import Html exposing (..) import Html.Attributes exposing (..) import Time exposing (Posix) -view : List Event -> Maybe String -> Posix -> Dict String Posix -> Html Msg -view events selectedId viewing feries = - Helpers.dayRangeOfWeek viewing - |> viewDays events selectedId viewing feries +view : InternalState -> List Event -> Html Msg +view state events = + Helpers.dayRangeOfWeek state.viewing + |> viewDays state events -viewAll : List Event -> Maybe String -> Posix -> Dict String Posix -> Html Msg -viewAll events selectedId viewing feries = - Helpers.dayRangeOfAllWeek viewing - |> viewDays events selectedId viewing feries +viewAll : InternalState -> List Event -> Html Msg +viewAll state events = + Helpers.dayRangeOfAllWeek state.viewing + |> viewDays state events -viewDays : List Event -> Maybe String -> Posix -> Dict String Posix -> List Posix -> Html Msg -viewDays events selectedId viewing feries weekRange = +viewDays : InternalState -> List Event -> List Posix -> Html Msg +viewDays { selected, viewing, joursFeries } events weekRange = div [ class "calendar--week" ] - [ viewWeekHeader weekRange - , viewWeekContent events selectedId viewing weekRange feries + [ viewWeekContent events selected viewing weekRange joursFeries ] @@ -59,27 +58,29 @@ viewWeekDay events selectedId feries day = dayEvents = viewDayEvents events selectedId day feries in - div [ class "calendar--day" ] - [ div [ class "calendar--day-slot" ] - (viewDaySlots ++ dayEvents) - ] + div [ class "calendar--dates"] + [ div [ class "calendar--date-header" ] + [ span [ class "calendar--date" ] [ text <| Helpers.dateString day ] ] + , div [ class "calendar--day-slot" ] + (viewDaySlots ++ dayEvents) + ] -viewWeekHeader : List Posix -> Html Msg -viewWeekHeader days = - div [ class "calendar--week-header" ] - [ viewDates days ] +-- viewWeekHeader : List Posix -> Html Msg +-- viewWeekHeader days = +-- div [ class "calendar--week-header" ] +-- [ viewDates days ] -viewDates : List Posix -> Html Msg -viewDates days = - div [ class "calendar--dates-header" ] - [ viewTimeGutterHeader - , div [ class "calendar--dates" ] <| List.map viewDate days - ] +-- viewDates : List Posix -> Html Msg +-- viewDates days = +-- div [ class "calendar--dates-header" ] +-- [ viewTimeGutterHeader +-- , div [ class "calendar--dates" ] <| List.map viewDate days +-- ] -viewDate : Posix -> Html Msg -viewDate day = - div [ class "calendar--date-header" ] - [ span [ class "calendar--date" ] [ text <| Helpers.dateString day ] ] +-- viewDate : Posix -> Html Msg +-- viewDate day = +-- div [ class "calendar--date-header" ] +-- [ span [ class "calendar--date" ] [ text <| Helpers.dateString day ] ] diff --git a/src/Config.elm b/src/Config.elm index 2abe6f2..c4f9124 100644 --- a/src/Config.elm +++ b/src/Config.elm @@ -21,4 +21,4 @@ allGroups = minWeekWidth : Int minWeekWidth = - 598 + 660 diff --git a/src/Main.elm b/src/Main.elm index b6a7c9a..64ded41 100644 --- a/src/Main.elm +++ b/src/Main.elm @@ -1,10 +1,11 @@ -module Main exposing (init, main, subscriptions) +module Main exposing (main) import Browser import Browser.Dom import Browser.Events import Json.Decode as Decode -import Model exposing (Model, initialModel) +import Model exposing (Model) +import Utils exposing (initialModel) import Msg exposing (Msg(..)) import Storage import Task @@ -12,16 +13,14 @@ import Update exposing (update) import View exposing (view) - ---- PROGRAM ---- - -init : () -> ( Model, Cmd Msg ) -init _ = - ( initialModel, Task.perform WindowSize Browser.Dom.getViewport ) +init : Storage.Storage -> ( Model, Cmd Msg ) +init {group, settings} = + ( initialModel settings group, Task.perform WindowSize Browser.Dom.getViewport ) -main : Program () Model Msg +main : Program Storage.Storage Model Msg main = Browser.document { view = view @@ -33,11 +32,7 @@ main = subscriptions : Model -> Sub Msg subscriptions _ = - Sub.batch - [ Storage.load LoadGroup - , Storage.saved SavedGroup - , Browser.Events.onKeyDown (Decode.map KeyDown keyDecoder) - ] + Browser.Events.onKeyDown (Decode.map KeyDown keyDecoder) keyDecoder : Decode.Decoder Int diff --git a/src/Model.elm b/src/Model.elm index ce55b33..d806194 100644 --- a/src/Model.elm +++ b/src/Model.elm @@ -1,14 +1,10 @@ -module Model exposing (Group, Model, PlanningResponse, WindowSize, initialModel, toCalEvent, toCalEvents, toDatetime) +module Model exposing (CustomEvent(..), Group, Model, PlanningResponse, Settings, WindowSize) import Calendar.Calendar as Calendar import Calendar.Event as CalEvent -import Calendar.Helpers exposing (colorToHex, computeColor, noBright) -import Calendar.Msg import Color import Http exposing (Error) -import Iso8601 import Secret -import String exposing (dropRight) import Swipe import Time exposing (Posix) import Types exposing (Event, Query) @@ -39,83 +35,25 @@ type alias Model = , swipe : Swipe.State , loop : Bool , secret : Secret.StateList + , settings : Settings + , tooltipHover : Bool } -type alias Group = - { name : String - , slug : String +type alias Settings = + { showHack2g2 : Bool + , showCustom : Bool + , menuOpened : Bool + , allWeek : Bool } -toDatetime : Posix -> String -toDatetime = - Iso8601.fromTime >> String.dropRight 14 - - -initialModel : Model -initialModel = - { data = Nothing - , error = Nothing - , date = Nothing - , selectedGroup = { name = "Cyber1 TD2", slug = "12" } - , loading = True - , calendarState = Calendar.init Calendar.Msg.Week (Time.millisToPosix 0) - , size = { width = 1200, height = 800 } - , swipe = Swipe.init - , loop = False - , secret = Secret.createStates - } - - -toCalEvents : List Event -> List CalEvent.Event -toCalEvents events = - List.map toCalEvent events - - -toCalEvent : Event -> CalEvent.Event -toCalEvent event = - { toId = event.eventId - , title = event.title - , startTime = extractTimeIsoString event.startDate - , endTime = extractTimeIsoString event.endDate - , classrooms = event.classrooms - , teachers = event.teachers - , groups = event.groups - , color = computeColor event.title +type alias Group = + { name : String + , slug : String } -extractTimeIsoString : String -> Posix -extractTimeIsoString dateString = - dateString - ++ ".000Z" - |> Iso8601.toTime - |> Result.withDefault (Time.millisToPosix 0) - - - --- let --- timeString = --- dateString --- |> String.dropLeft 11 --- hours = --- timeString --- |> String.dropRight 6 --- |> String.toInt --- |> Maybe.withDefault 0 --- -- TODO better work with time zone --- |> (+) 2 --- minutes = --- timeString --- |> String.dropRight 3 --- |> String.dropLeft 3 --- |> String.toInt --- |> Maybe.withDefault 0 --- seconds = --- timeString --- |> String.dropLeft 6 --- |> String.toInt --- |> Maybe.withDefault 0 --- in --- hours * 3600 + minutes * 60 + seconds +type CustomEvent + = Hack2g2 + | Custom diff --git a/src/Msg.elm b/src/Msg.elm index c6c19d0..e5636b7 100644 --- a/src/Msg.elm +++ b/src/Msg.elm @@ -6,7 +6,7 @@ import Http exposing (Error) import Swipe import Time exposing (Posix) import Types exposing (Query) - +import Model exposing(CustomEvent) type Msg = Noop @@ -20,6 +20,8 @@ type Msg | SetCalendarState Calendar.Msg | SwipeEvent Swipe.Msg | ClickToday - | LoadGroup String - | SavedGroup String + | ToggleMenu | StopReloadIcon () + | ChangeMode Calendar.TimeSpan + | CheckEvents CustomEvent Bool + | Reload diff --git a/src/Query.elm b/src/Query.elm index 1da2346..fb426e0 100644 --- a/src/Query.elm +++ b/src/Query.elm @@ -6,18 +6,42 @@ import Json.Decode as Decode import Json.Encode as Encode import Msg exposing (Msg(..)) import Types exposing (Query, decodeQuery) +import Model exposing (Settings) eventsApiQuery : String eventsApiQuery = - "query day_planning($collection:Collection!,$grs:[String],$to:DateTime!,$from:DateTime!){planning(collection:$collection,affiliationGroups:$grs,toDate:$to,fromDate:$from){events{title startDate endDate classrooms teachers groups eventId}}}" + """query day_planning($grs: [String], $to: DateTime!, $from: DateTime!, $hack2g2: Boolean!, $custom: Boolean!) { + planning(collection: CYBER, affiliationGroups: $grs, toDate: $to, fromDate: $from) { + ...events + } + hack2g2: planning(collection: HACK2G2, toDate: $to, fromDate: $from) @include(if: $hack2g2) { + ...events + } + custom: planning(collection: CUSTOM, toDate: $to, fromDate: $from) @include(if: $custom) { + ...events + } + } + fragment events on Planning { + events { + title + eventId + startDate + endDate + classrooms + teachers + groups + } + } + """ type alias Params = { from : String , to : String , grs : List String - , collection : String + , hack2g2 : Bool + , custom : Bool } @@ -45,14 +69,15 @@ requestAPI = requestBody : String -> Params -> Body -requestBody queryString { from, to, grs, collection } = +requestBody queryString { from, to, grs, hack2g2, custom } = let var = Encode.object [ ( "from", Encode.string from ) , ( "to", Encode.string to ) , ( "grs", Encode.list Encode.string grs ) - , ( "collection", Encode.string collection ) + , ( "hack2g2", Encode.bool hack2g2 ) + , ( "custom", Encode.bool custom ) ] in Encode.object @@ -62,12 +87,13 @@ requestBody queryString { from, to, grs, collection } = |> Http.jsonBody -sendRequest : String -> String -> List String -> Cmd Msg -sendRequest from to groups = +sendRequest : String -> String -> List String -> Settings -> Cmd Msg +sendRequest from to groups { showCustom, showHack2g2 } = { from = from , to = to , grs = groups - , collection = "CYBER" + , hack2g2 = showHack2g2 + , custom = showCustom } |> requestBody eventsApiQuery |> post Config.apiUrl [] diff --git a/src/Secret/Help.elm b/src/Secret/Help.elm index 5e67f62..169e8ef 100644 --- a/src/Secret/Help.elm +++ b/src/Secret/Help.elm @@ -1,10 +1,10 @@ module Secret.Help exposing (Help, helpEvents, helpMessages) import Calendar.Event as Cal -import Calendar.Helpers exposing (computeColor) import Time exposing (Posix) import Time.Extra as TimeExtra import TimeZone exposing (europe__paris) +import Utils exposing (computeStyle) type alias Help = @@ -79,10 +79,9 @@ helpToEvent viewing help = , title = help.title , startTime = start , endTime = end - , classrooms = [ help.desc ] - , teachers = [ help.desc2 ] - , groups = [] - , color = computeColor help.title + , description = [ help.desc, help.desc2 ] + , style = computeStyle help.title + , source = "" } diff --git a/src/SideMenu.elm b/src/SideMenu.elm new file mode 100644 index 0000000..b455d01 --- /dev/null +++ b/src/SideMenu.elm @@ -0,0 +1,79 @@ +module SideMenu exposing (view) + +import Calendar.Msg exposing (TimeSpan(..)) +import Config exposing (allGroups) +import Html exposing (Html, div, select, text, option, button, input, label, i, span, a) +import Html.Attributes exposing (class, id, multiple, value, style, type_, for, checked, title, attribute) +import Html.Events exposing (on, onClick, onCheck, targetValue) +import Json.Decode as Json +import Model exposing (Group, Settings) +import Msg exposing (Msg(..)) + + +view : Group -> TimeSpan -> Settings -> Html Msg +view group timespan { menuOpened, showCustom, showHack2g2 } = + div [ class "sidemenu--container", style "display" (if menuOpened then "flex" else "none" ) ] + [ div + [ class "sidemenu--main" ] + [ viewSelector group + , hack2g2Checkbox showHack2g2 + , customCheckbox showCustom + , modeButton Week "Week" + , modeButton AllWeek "All Week" + , modeButton Day "Day" + ] + , div + [ class "sidemenu--footer" ] + [ div + [ class "sidemenu--footer-content" ] + [ a [] [ i [ class "icon-secure" ] [] ] + , span [] [ text "Secured by CP" ] + ] + ] + ] + + + +viewSelector : Group -> Html Msg +viewSelector selected = + div [ class "sidemenu--selector" ] + [ label [ for "select-group" ] [ text "Groupes" ] + , select + [ class "sidemenu--selector" + , style "color" "white" + , id "select-group" + , on "change" <| Json.map SetGroup targetValue + , value selected.slug + , multiple False + ] + (List.map optionGroup allGroups) + ] + + +optionGroup : Group -> Html Msg +optionGroup group = + option [ value group.slug ] + [ text group.name ] + + +hack2g2Checkbox : Bool -> Html Msg +hack2g2Checkbox isChecked = + div [ class "md-checkbox" ] + [ input [ id "check-hack2g2", type_ "checkbox", checked isChecked, onCheck (CheckEvents Model.Hack2g2) ] [] + , label [ for "check-hack2g2"] [ text "Hack2g2" ] + ] + + +customCheckbox : Bool -> Html Msg +customCheckbox isChecked = + div [ class "md-checkbox" ] + [ input [ id "check-custom", type_ "checkbox", checked isChecked, onCheck (CheckEvents Model.Custom) ] [] + , label [ for "check-custom" ] [ text "Custom" ] + ] + + +modeButton : TimeSpan -> String -> Html Msg +modeButton mode name = + div [] + [ button [ onClick (ChangeMode mode), attribute "aria-label" ("Toggle Mode " ++ name) ] [ text name ] + ] diff --git a/src/Storage.elm b/src/Storage.elm index 5da08ae..2fa8ba7 100644 --- a/src/Storage.elm +++ b/src/Storage.elm @@ -1,13 +1,12 @@ -port module Storage exposing (doload, load, save, saved) +port module Storage exposing (save, Storage) +import Model -port save : String -> Cmd msg +type alias Storage = + { group : String + , settings : Model.Settings + } -port saved : (String -> msg) -> Sub msg - -port doload : () -> Cmd msg - - -port load : (String -> msg) -> Sub msg +port save : Storage -> Cmd msg diff --git a/src/Swipe.elm b/src/Swipe.elm index ca67c67..8060d30 100644 --- a/src/Swipe.elm +++ b/src/Swipe.elm @@ -7,6 +7,7 @@ module Swipe exposing , init , onSwipe , update + , hasSwiped ) import Html @@ -97,6 +98,14 @@ update msg state = } +hasSwiped : State -> Float -> Maybe Direction +hasSwiped state distance = + if (state.state == SwipeEnd) && (distanceX state.c0 state.c1 > distance) then + state.direction + else + Nothing + + direction : Coordinates -> Maybe Direction direction { clientX, clientY } = if clientX > 0 then @@ -109,15 +118,9 @@ direction { clientX, clientY } = Nothing - --- if abs clientX > abs clientY then --- else --- if clientY > 0 then --- Just Down --- else if clientY < 0 then --- Just Up --- else --- Nothing +distanceX : Coordinates -> Coordinates -> Float +distanceX c0 c1 = + abs (c0.clientX - c1.clientX) subCoordinates : Coordinates -> Coordinates -> Coordinates diff --git a/src/Tooltip.elm b/src/Tooltip.elm index e1c6c2d..20af3e5 100644 --- a/src/Tooltip.elm +++ b/src/Tooltip.elm @@ -1,22 +1,24 @@ module Tooltip exposing (viewTooltip) import Calendar.Event as CalEvent +import Calendar.Msg exposing (Position) import Html exposing (..) import Html.Attributes exposing (..) +import Model exposing (WindowSize) import Msg exposing (Msg(..)) import Time exposing (Posix) import TimeZone exposing (europe__paris) -viewTooltip : Maybe String -> List CalEvent.Event -> Html Msg -viewTooltip selectedId events = +viewTooltip : Maybe String -> Maybe Position -> List CalEvent.Event -> WindowSize -> Html Msg +viewTooltip selectedId maybePos events screenSize = let content = case selectedId of Just id -> List.filter (\e -> e.toId == id) events |> List.head - |> viewTooltipContent + |> viewTooltipContent maybePos screenSize _ -> [] @@ -24,15 +26,25 @@ viewTooltip selectedId events = div [ class "tooltip" ] content -viewTooltipContent : Maybe CalEvent.Event -> List (Html Msg) -viewTooltipContent maybeEvent = +viewTooltipContent : Maybe Position -> WindowSize -> Maybe CalEvent.Event -> List (Html Msg) +viewTooltipContent maybePos screenSize maybeEvent = case maybeEvent of Just event -> - [ div [ class "tooltip--event", tooltipStyle event.color ] - ([ div [ class "tooltip--event-title" ] [ text event.title ] - , div [ classList [ ( "tooltip--event-sub", True ), ( "tooltip--event-hours", True ) ] ] [ viewHour event ] + let + badge = + if String.isEmpty event.source then + [] + else + [ viewBadge event.source event.style ] + + title = + [ text event.title ] ++ badge + in + [ div ([ class "tooltip--event" ] ++ tooltipStylePos event.style maybePos screenSize) + ([ div [ class "tooltip--event-title" ] title + , div [ class "tooltip--event-sub", class "tooltip--event-hours" ] [ viewHour event ] ] - ++ showIfNotEmpty [ String.join "," event.classrooms, String.join "," event.teachers, String.join "," event.groups ] + ++ showIfNotEmpty event.description ) ] @@ -46,9 +58,33 @@ showIfNotEmpty data = |> List.map (\e -> div [ class "tooltip--event-sub" ] [ text e ]) -tooltipStyle : String -> Html.Attribute Msg -tooltipStyle color = - style "background-color" color +tooltipStylePos : CalEvent.Style -> Maybe Position -> WindowSize -> List (Html.Attribute Msg) +tooltipStylePos { textColor, eventColor } maybePos { width, height } = + let + absoluteCoords = + case maybePos of + Just pos -> + let + posX = + pos.x + - 125 + |> Basics.min (width - 252) + |> Basics.max 0 + |> String.fromInt + + posY = + pos.y + |> Basics.min (height - 152) + |> Basics.max 0 + |> String.fromInt + in + [ style "left" (posX ++ "px"), style "top" (posY ++ "px") ] + + _ -> + [ style "bottom" "0" ] + in + [ style "background-color" eventColor, style "color" textColor ] + ++ absoluteCoords viewHour : CalEvent.Event -> Html Msg @@ -59,6 +95,12 @@ viewHour event = |> text +viewBadge : String -> CalEvent.Style -> Html Msg +viewBadge name { eventColor, textColor } = + span [ class "tooltip--event-badge", style "background-color" textColor, style "color" eventColor ] + [ text name ] + + toString : Posix -> String toString time = let diff --git a/src/Types.elm b/src/Types.elm index d4fe394..aa5f312 100644 --- a/src/Types.elm +++ b/src/Types.elm @@ -12,15 +12,17 @@ type alias Event = { title : String , startDate : String , endDate : String - , classrooms : List String - , teachers : List String - , groups : List String + , classrooms : Maybe (List String) + , teachers : Maybe (List String) + , groups : Maybe (List String) , eventId : String } type alias Query = { planning : Planning + , hack2g2 : Maybe Planning + , custom : Maybe Planning } @@ -30,19 +32,28 @@ decodePlanning = (field "events" (Decode.list decodeEvent)) +listnull : Decoder (Maybe (List String)) +listnull = + Decode.string + |> Decode.list + |> Decode.nullable + + decodeEvent : Decoder Event decodeEvent = Decode.map7 Event (field "title" string) (field "startDate" string) (field "endDate" string) - (field "classrooms" (Decode.list string)) - (field "teachers" (Decode.list string)) - (field "groups" (Decode.list string)) + (field "classrooms" listnull) + (field "teachers" listnull) + (field "groups" listnull) (field "eventId" string) decodeQuery : Decoder Query decodeQuery = - Decode.map Query + Decode.map3 Query (field "planning" decodePlanning) + (Decode.maybe (field "hack2g2" decodePlanning)) + (Decode.maybe (field "custom" decodePlanning)) diff --git a/src/Update.elm b/src/Update.elm index c5630f4..5350de7 100644 --- a/src/Update.elm +++ b/src/Update.elm @@ -1,10 +1,10 @@ -module Update exposing (calendarAction, createPlanningRequest, distanceX, find, update) +module Update exposing (calendarAction, createPlanningRequest, update) import Browser.Dom import Calendar.Calendar as Calendar import Calendar.Msg as CalMsg exposing (TimeSpan(..)) import Config exposing (allGroups) -import Model exposing (Model, toCalEvents, toDatetime) +import Model exposing (CustomEvent(..), Model, Settings) import Msg exposing (Msg(..)) import Process import Query exposing (sendRequest) @@ -15,6 +15,7 @@ import Task import Time exposing (Posix) import Time.Extra as TimeExtra import TimeZone exposing (europe__paris) +import Utils exposing (find, toCalEvents, toCalEventsWithSource, toDatetime) @@ -34,22 +35,49 @@ update msgSource model = Day else - Week + if model.settings.allWeek then AllWeek else Week + in ( { model | date = Just date, calendarState = Calendar.init timespan date } - , createPlanningRequest date model.selectedGroup.slug + , createPlanningRequest date model.selectedGroup.slug model.settings ) GraphQlMsg response -> case response of Ok query -> let - data = + cyberEvents = query.planning.events |> toCalEvents + + hack2g2Events = + case query.hack2g2 of + Nothing -> + [] + + Just p -> + p.events + |> toCalEventsWithSource "Hack2g2" "#00ff1d" + + customEvents = + case query.custom of + Nothing -> + [] + + Just p -> + p.events + |> toCalEventsWithSource "Custom" "#d82727" + + allEvents = + cyberEvents + ++ hack2g2Events + ++ customEvents |> Just + + cmd = + Task.attempt (always Noop) (Browser.Dom.blur "select-group") in - ( { model | data = data, loading = False, error = Nothing }, Task.attempt (always Noop) (Browser.Dom.blur "groupSelect") ) + ( { model | data = allEvents, loading = False, error = Nothing }, cmd ) Err err -> ( { model | error = Just err, loading = False }, Cmd.none ) @@ -59,8 +87,23 @@ update msgSource model = group = find (\x -> x.slug == slug) allGroups |> Maybe.withDefault { slug = "12", name = "Cyber1 TD2" } + + storage = + { group = slug + , settings = model.settings + } + + ( load, action ) = + if (model.loading == False) && (model.loop == False) then + ( True, queryReload (createPlanningRequest model.calendarState.viewing slug model.settings) ) + + else + ( False, Cmd.none ) in - ( { model | selectedGroup = group }, Storage.save slug ) + ( { model | selectedGroup = group, loading = True, loop = True }, Cmd.batch [ Storage.save storage, action ] ) + + Reload -> + ( { model | loading = True, loop = True }, queryReload (createPlanningRequest model.calendarState.viewing model.selectedGroup.slug model.settings) ) SetCalendarState calendarMsg -> let @@ -76,25 +119,23 @@ update msgSource model = calendarAction model CalMsg.PageBack WindowSize view -> - ( { model | size = { width = floor view.viewport.width, height = floor view.viewport.height } }, Storage.doload () ) + ( { model | size = { width = floor view.viewport.width, height = floor view.viewport.height } }, Task.perform SetDate Time.now ) KeyDown code -> let - cmd = + ( calendarModel, cmd ) = case code of 39 -> - Task.succeed PageForward - |> Task.perform identity + calendarAction model CalMsg.PageForward 37 -> - Task.succeed PageBack - |> Task.perform identity + calendarAction model CalMsg.PageBack _ -> - Cmd.none + ( model, Cmd.none ) updatedModel = - { model | secret = Secret.update code model.secret } + { calendarModel | secret = Secret.update code model.secret } in ( updatedModel, cmd ) @@ -104,62 +145,95 @@ update msgSource model = Swipe.update msg model.swipe action = - if (updatedSwipe.state == Swipe.SwipeEnd) && (distanceX updatedSwipe.c0 updatedSwipe.c1 > 70.0) then - case updatedSwipe.direction of - Just Swipe.Left -> - Task.succeed PageForward - |> Task.perform identity - - Just Swipe.Right -> - Task.succeed PageBack - |> Task.perform identity + case Swipe.hasSwiped updatedSwipe 70 of + Just Swipe.Left -> + Task.succeed PageForward + |> Task.perform identity - _ -> - Cmd.none + Just Swipe.Right -> + Task.succeed PageBack + |> Task.perform identity - else - Cmd.none + _ -> + Cmd.none in ( { model | swipe = updatedSwipe }, action ) ClickToday -> + model.date + |> Maybe.withDefault (Time.millisToPosix 0) + |> CalMsg.ChangeViewing + |> calendarAction model + + StopReloadIcon _ -> + ( { model | loop = False }, Cmd.none ) + + ToggleMenu -> let - date = - model.date |> Maybe.withDefault (Time.millisToPosix 0) + s = + model.settings + + newSettings = + { s | menuOpened = not s.menuOpened } + + storage = + { group = model.selectedGroup.slug + , settings = newSettings + } in - calendarAction model (CalMsg.ChangeViewing date) + ( { model | settings = newSettings }, Storage.save storage ) - LoadGroup slug -> + ChangeMode mode -> let - group = - find (\x -> x.slug == slug) allGroups - |> Maybe.withDefault { slug = "12", name = "Cyber1 TD2" } + ( calendarModel, _ ) = + calendarAction model (CalMsg.ChangeTimeSpan mode) + + allWeek = + if mode == AllWeek then True else False + + s = model.settings + + updatedSettings = + { s | allWeek = allWeek } + + storage = + { group = calendarModel.selectedGroup.slug + , settings = updatedSettings + } + in - ( { model | selectedGroup = group }, Task.perform SetDate Time.now ) + ({ calendarModel | settings = updatedSettings }, Storage.save storage) + - SavedGroup ok -> + CheckEvents type_ checked -> let - state = - if (model.loading == False) && (model.loop == False) then - ( { model | loading = True, loop = True } - , Cmd.batch - [ createPlanningRequest model.calendarState.viewing model.selectedGroup.slug - , Process.sleep (1 * 1000) - |> Task.perform StopReloadIcon - ] - ) + s = + model.settings - else - ( model, Cmd.none ) - in - state + updatedSettings = + case type_ of + Hack2g2 -> + { s | showHack2g2 = checked } - StopReloadIcon _ -> - ( { model | loop = False }, Cmd.none ) + Custom -> + { s | showCustom = checked } + + storage = + { group = model.selectedGroup.slug + , settings = updatedSettings + } + cmd = + Cmd.batch + [ createPlanningRequest model.calendarState.viewing model.selectedGroup.slug updatedSettings + , Storage.save storage + ] + in + ( { model | loading = True, loop = True, settings = updatedSettings }, queryReload cmd ) -createPlanningRequest : Posix -> String -> Cmd Msg -createPlanningRequest date slug = + +createPlanningRequest : Posix -> String -> Settings -> Cmd Msg +createPlanningRequest date slug settings = let dateFrom = date @@ -175,26 +249,7 @@ createPlanningRequest date slug = |> TimeExtra.ceiling TimeExtra.Sunday europe__paris |> toDatetime in - sendRequest dateFrom dateTo [ slug ] - - -find : (a -> Bool) -> List a -> Maybe a -find predicate list = - case list of - [] -> - Nothing - - first :: rest -> - if predicate first then - Just first - - else - find predicate rest - - -distanceX : Swipe.Coordinates -> Swipe.Coordinates -> Float -distanceX c0 c1 = - abs (c0.clientX - c1.clientX) + sendRequest dateFrom dateTo [ slug ] settings calendarAction : Model -> CalMsg.Msg -> ( Model, Cmd Msg ) @@ -205,7 +260,7 @@ calendarAction model calMsg = ( cmd, loading ) = if Time.toMonth europe__paris updatedCalendar.viewing /= Time.toMonth europe__paris model.calendarState.viewing then - ( createPlanningRequest updatedCalendar.viewing model.selectedGroup.slug + ( createPlanningRequest updatedCalendar.viewing model.selectedGroup.slug model.settings , True ) @@ -220,3 +275,12 @@ calendarAction model calMsg = updatedCalendar in ( { model | calendarState = updatedCalWithJourFerie, loading = loading }, cmd ) + + +queryReload : Cmd.Cmd Msg -> Cmd.Cmd Msg +queryReload action = + Cmd.batch + [ action + , Process.sleep (1 * 1000) + |> Task.perform StopReloadIcon + ] diff --git a/src/Utils.elm b/src/Utils.elm new file mode 100644 index 0000000..c9d1408 --- /dev/null +++ b/src/Utils.elm @@ -0,0 +1,132 @@ +module Utils exposing (computeStyle, extractTimeIsoString, find, initialModel, toCalEvents, toCalEventsWithSource, toDatetime) + +import Calendar.Calendar as Calendar +import Calendar.Event as CalEvent +import Calendar.Helpers exposing (colorToHex, computeColor, noBright) +import Calendar.Msg +import Config exposing (allGroups) +import Iso8601 +import Model exposing (Model, Settings) +import Secret +import Swipe +import Time exposing (Posix) +import Types exposing (Event) + + +toDatetime : Posix -> String +toDatetime = + Iso8601.fromTime >> String.dropRight 14 + + +initialModel : Settings -> String -> Model +initialModel settings slug = + let + group = + find (\x -> x.slug == slug) allGroups + |> Maybe.withDefault { slug = "12", name = "Cyber1 TD2" } + in + { data = Nothing + , error = Nothing + , date = Nothing + , loading = True + , selectedGroup = group + , calendarState = Calendar.init Calendar.Msg.Week (Time.millisToPosix 0) + , size = { width = 1200, height = 800 } + , swipe = Swipe.init + , loop = False + , secret = Secret.createStates + , settings = settings + , tooltipHover = False + } + + +toCalEvents : List Event -> List CalEvent.Event +toCalEvents events = + List.map toCalEvent events + + +toCalEventsWithSource : String -> String -> List Event -> List CalEvent.Event +toCalEventsWithSource source color events = + List.map (toCalEventSource source color) events + + +toCalEvent : Event -> CalEvent.Event +toCalEvent event = + let + classes = + Maybe.withDefault [] event.classrooms + + teachers = + Maybe.withDefault [] event.teachers + + groups = + Maybe.withDefault [] event.groups + + description = + List.map (String.join ", ") [ classes, teachers, groups ] + in + { toId = event.eventId + , title = event.title + , startTime = extractTimeIsoString event.startDate + , endTime = extractTimeIsoString event.endDate + , description = description + , style = computeStyle event.title + , source = "" + } + + +toCalEventSource : String -> String -> Event -> CalEvent.Event +toCalEventSource source color event = + let + classes = + Maybe.withDefault [] event.classrooms + + teachers = + Maybe.withDefault [] event.teachers + + groups = + Maybe.withDefault [] event.groups + + description = + List.map (String.join ", ") [ classes, teachers, groups ] + in + { toId = event.eventId + , title = event.title + , startTime = extractTimeIsoString event.startDate + , endTime = extractTimeIsoString event.endDate + , description = description + , source = source + , style = + { textColor = color + , eventColor = "black" + } + } + + +computeStyle : String -> CalEvent.Style +computeStyle val = + { textColor = "white" + , eventColor = computeColor val + } + + +extractTimeIsoString : String -> Posix +extractTimeIsoString dateString = + dateString + ++ ".000Z" + |> Iso8601.toTime + |> Result.withDefault (Time.millisToPosix 0) + + +find : (a -> Bool) -> List a -> Maybe a +find predicate list = + case list of + [] -> + Nothing + + first :: rest -> + if predicate first then + Just first + + else + find predicate rest diff --git a/src/View.elm b/src/View.elm index e78805a..f52baa1 100644 --- a/src/View.elm +++ b/src/View.elm @@ -1,22 +1,24 @@ -module View exposing (errorMessage, optionGroup, reloadButton, view, viewMessage, viewPagination, viewSelector, viewTitle, viewToolbar) +module View exposing (view) import Browser exposing (Document) import Calendar.Calendar as Calendar import Calendar.Msg exposing (TimeSpan(..)) -import Config exposing (allGroups) +import Config import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (on, onClick, targetValue) import Http import Json.Decode as Json -import Model exposing (Group, Model, toDatetime) +import Model exposing (Group, Model) import Msg exposing (Msg(..)) import Secret import Secret.Help +import SideMenu import Swipe exposing (onSwipe) import Time exposing (Month(..), Posix) import TimeZone exposing (europe__paris) import Tooltip +import Utils exposing (toDatetime) @@ -38,17 +40,25 @@ view model = ++ [ class "main--container" ] ++ Secret.classStyle model.secret + currentEvent = + if model.size.width < Config.minWeekWidth then + model.calendarState.selected + + else + model.calendarState.hover + funThings = Secret.view model.secret container = div attrs - [ viewToolbar model.selectedGroup model.calendarState.viewing (model.calendarState.timeSpan == Week) model.loop + [ viewToolbar model.selectedGroup model.calendarState.viewing (model.calendarState.timeSpan /= Day) model.loop , div [ class "main--calendar" ] - [ Html.map SetCalendarState (Calendar.view events model.calendarState) + [ SideMenu.view model.selectedGroup model.calendarState.timeSpan model.settings + , Html.map SetCalendarState (Calendar.view events model.calendarState) ] , viewMessage model - , Tooltip.viewTooltip model.calendarState.hover events + , Tooltip.viewTooltip currentEvent model.calendarState.position events model.size , funThings ] in @@ -62,9 +72,6 @@ viewToolbar selected viewing all loop = div [ class "main--toolbar" ] [ viewPagination all loop , viewTitle viewing - , viewSelector selected - - -- , viewTimeSpanSelection timeSpan ] @@ -74,10 +81,6 @@ viewTitle viewing = [ h2 [] [ text <| formatDateTitle viewing ] ] - --- "MMMM yyyy" - - formatDateTitle : Posix -> String formatDateTitle date = let @@ -132,58 +135,60 @@ formatDateTitle date = viewPagination : Bool -> Bool -> Html Msg viewPagination all loop = let - btns = + navigations = if all then - [ button [ class "main--navigatiors-button", onClick PageBack ] [ text "back" ] - , button [ class "main--navigatiors-button", onClick PageForward ] [ text "next" ] + [ navButton + [ class "main--navigatiors-button", onClick PageBack, attribute "aria-label" "Previous Page" ] + [ i [ class "icon-left" ] [] + ] + , navButton + [ class "main--navigatiors-button", onClick PageForward, attribute "aria-label" "Next Page" ] + [ i [ class "icon-right" ] [] + ] ] else [] in div [ class "main--paginators" ] - (btns - ++ [ button [ class "main--navigatiors-button", onClick ClickToday ] [ text "today" ] + (viewMenuButton + :: navigations + ++ [ navButton [ class "main--navigatiors-today", onClick ClickToday, attribute "aria-label" "Today" ] [ text "aujourd'hui" ] , reloadButton loop ] ) -viewSelector : Group -> Html Msg -viewSelector selected = - div [ class "main--selector" ] - [ select - [ class "main--selector-select" - , id "groupSelect" - , on "change" <| Json.map SetGroup targetValue - , value selected.slug - , multiple False - ] - (List.map optionGroup allGroups) - ] - - -optionGroup : Group -> Html Msg -optionGroup group = - option [ value group.slug ] - [ text group.name ] - - reloadButton : Bool -> Html Msg reloadButton loop = - button + navButton [ classList [ ( "main--navigatiors-button", True ) , ( "main--navigatiors-reload", True ) , ( "loop", loop ) ] - , style "font-size" "1.2em" - , onClick (SavedGroup "ok") + , onClick Reload + , attribute "aria-label" "Reload" + ] + [ i [ class "icon-reload" ] [] ] - [ span [] [ text "⟳" ] + + +viewMenuButton : Html Msg +viewMenuButton = + navButton + [ class "main--navigatiors-button", onClick ToggleMenu, attribute "aria-label" "Toggle Menu" ] + [ i [ class "icon-menu" ] [] ] +navButton : List (Attribute msg) -> List (Html msg) -> Html msg +navButton attr content = + div + [ class "main--navigatiors-action" ] + [ button attr content ] + + viewMessage : Model -> Html Msg viewMessage model = let diff --git a/src/css/calendar.css b/src/css/calendar.css index b54fc62..9c36a42 100644 --- a/src/css/calendar.css +++ b/src/css/calendar.css @@ -6,10 +6,7 @@ .calendar--time-gutter { display: flex; flex-direction: column; -} - -.calendar--dates-header > .calendar--time-gutter { - width: 51px; + background-color: var(--background-color); } .calendar--time-slot-group { @@ -17,53 +14,53 @@ display: flex; flex-flow: column nowrap; flex: 1; - border-bottom: 1px solid #363e41; - border-left: 1px solid #363e41; + border-bottom: 1px solid var(--border-color); + border-left: 1px solid var(--border-color); } .calendar--time-slot-text { font-size: 12px; - color: #ecf0f1; } .calendar--week { - display: flex; - flex-flow: column nowrap; flex: 1; + overflow-y: auto; } .calendar--week-content { display: flex; - overflow-x: hidden; - flex: 1; -} - -.calendar--week-header, -.calendar--day .calendar--date-header { - background-color: #3c6382; - padding: 2px 0; - border-bottom: 2px solid #122e42; -} - -.calendar--dates-header { - display: flex; - flex-flow: row nowrap; - align-content: stretch; + overflow: hidden; + /* flex: 1; */ + min-height: 100%; } .calendar--dates { - flex-flow: row nowrap; + flex-flow: column nowrap; display: flex; align-content: stretch; justify-content: space-around; flex: 1; + min-width: 0; } .calendar--date-header { - padding: 0; - text-align: center; + justify-content: center; display: flex; align-items: center; + + background-color: var(--accent-color); + padding: 2px 0; + border-bottom: 2px solid var(--header-border-color); +} + +.calendar--date-header-weeknum { + background-color: var(--accent-color-dark); +} + +.calendar--date-header-zone { + font-size: 9px; + padding: 1px 0; + border-bottom: 1px solid var(--border-color); } .calendar--date-header-content { @@ -75,9 +72,11 @@ .calendar--date { text-decoration: none; - color: #ecf0f1; font-size: 15px; line-height: 26px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } .calendar--day { @@ -102,27 +101,23 @@ .calendar--hour-slot { padding: 0 10px; flex: 1 0 0; - background-color: #262d2f; } .calendar--event { - font-size: 14px; - padding: 5px; - background-color: #5fb4ca; + font-size: 0.9rem; + padding: 0.2em; + background-color: var(--accent-color); color: white; cursor: pointer; overflow: hidden; - border-bottom: 1px solid #2d3436 -} - -.fun-help .calendar--event { - transition: 1s; + border-bottom: 1px solid var(--border-color); + user-select: none; } .calendar--event-title { - font-weight: bold; - height: 2em; - line-height: 1em; + font-weight: 500; + font-size: 0.9rem; + max-height: 2.4em; overflow: hidden; } @@ -136,7 +131,6 @@ padding: 0 15px; background-color: transparent; height: 100%; - color: #ecf0f1; font-size: 15px; cursor: pointer; } diff --git a/src/css/colors.css b/src/css/colors.css new file mode 100644 index 0000000..6fceb8e --- /dev/null +++ b/src/css/colors.css @@ -0,0 +1,13 @@ +:root { + + --nav-color: #124368; + --accent-color: #3c6382; + --accent-color-dark: #345b7a; + + --background-color: #262d2f; + --body-color: #2d3436; + --border-color: #363e41; + --text-color: #ecf0f1; + + --header-border-color: #122e42; +} \ No newline at end of file diff --git a/src/css/cybericons.css b/src/css/cybericons.css new file mode 100644 index 0000000..178c58a --- /dev/null +++ b/src/css/cybericons.css @@ -0,0 +1,62 @@ +@font-face { + font-family: 'cybericons'; + src: url('font/cybericons.eot?21557874'); + src: url('font/cybericons.woff2?21557874') format('woff2'), + url('font/cybericons.woff?21557874') format('woff'), + url('font/cybericons.ttf?21557874') format('truetype'); + font-weight: normal; + font-style: normal; +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'cybericons'; + src: url('../font/cybericons.svg?21557874#cybericons') format('svg'); + } +} +*/ + + [class^="icon-"]:before, [class*=" icon-"]:before { + font-family: "cybericons"; + font-style: normal; + font-weight: normal; + speak: none; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +.icon-search:before { content: '\e800'; } /* '' */ +.icon-right:before { content: '\e801'; } /* '' */ +.icon-left:before { content: '\e802'; transform: translateX(-2px); } /* '' */ +.icon-reload:before { content: '\e803'; } /* '' */ +.icon-secure:before { content: '\e804'; } /* '' */ +.icon-unsecure:before { content: '\e805'; } /* '' */ +.icon-menu:before { content: '\f0c9'; } /* '' */ \ No newline at end of file diff --git a/src/css/font/cybericons.eot b/src/css/font/cybericons.eot new file mode 100644 index 0000000..22a8af5 Binary files /dev/null and b/src/css/font/cybericons.eot differ diff --git a/src/css/font/cybericons.ttf b/src/css/font/cybericons.ttf new file mode 100644 index 0000000..8aec3da Binary files /dev/null and b/src/css/font/cybericons.ttf differ diff --git a/src/css/font/cybericons.woff b/src/css/font/cybericons.woff new file mode 100644 index 0000000..607233c Binary files /dev/null and b/src/css/font/cybericons.woff differ diff --git a/src/css/font/cybericons.woff2 b/src/css/font/cybericons.woff2 new file mode 100644 index 0000000..65f5d93 Binary files /dev/null and b/src/css/font/cybericons.woff2 differ diff --git a/src/css/main.css b/src/css/main.css index cd7b2e0..fea1a9d 100644 --- a/src/css/main.css +++ b/src/css/main.css @@ -1,9 +1,13 @@ -@import url('https://fonts.googleapis.com/css?family=Montserrat'); +@import url('https://fonts.googleapis.com/css?family=Roboto:400,500'); * { box-sizing: border-box; } +:root { + font-size: 16px; +} + html, body { padding: 0; @@ -13,12 +17,26 @@ body { } body { - font-family: 'Montserrat', sans-serif; - font-size: 20px; margin: 0; text-align: center; - background-color: #2d3436; - color: #ecf0f1; + background-color: var(--body-color); +} + +body, button, a, input, select { + font-family: 'Roboto', Helvetica, Arial, sans-serif; + color: var(--text-color); +} + +button { + border: 0; + border-radius: 0; + background-color: transparent; + cursor: pointer; + padding: 5px 15px; +} + +button:hover { + background-color: var(--accent-color); } .hidden { @@ -41,7 +59,7 @@ body { .main--toolbar { display: flex; - background-color: #124368; + background-color: var(--nav-color); padding: 0; justify-content: space-between; height: 40px; @@ -49,43 +67,39 @@ body { } .main--month-title { - cursor: pointer; - position: absolute; - width: 100%; - height: 100%; + display: flex; + flex: 1; + justify-content: center; + align-items: center; } .main--month-title h2 { + font-size: 1.3rem; margin: 0; - padding: 5px 0; - font-size: 22px; white-space: nowrap; } -.main--navigatiors-button, -.main--selector-select { - height: 100%; +.main--navigatiors-button { border: 0; background-color: transparent; - color: #ecf0f1; - font-size: 15px; + font-size: 1rem; cursor: pointer; vertical-align: top; } -.main--navigatiors-button:hover, -.main--selector-select:hover { - background-color: #34495e; +.main--navigatiors-button:hover { + background-color: var(--accent-color); } -.main--navigatiors-reload { - font-size: 1.2em; - line-height: 100%; +button:focus, +select:focus, +option:focus, +input:focus { + outline-color: var(--accent-color); } -.main--navigatiors-reload span { +.main--navigatiors-reload i { display: block; - padding-left: 4px; transform-origin: center center; animation-name: none; animation-duration: 1000ms; @@ -93,23 +107,38 @@ body { animation-iteration-count: 1; } -.main--navigatiors-reload.loop span { +.main--navigatiors-reload.loop i { animation-name: loop; } +.main--navigatiors-action { + display: inline-flex; + vertical-align: top; + padding: 5px 0 5px 5px; + height: 100%; +} + .main--navigatiors-button { + padding: 0 0.25rem; + border-radius: 50%; +} + +.main--navigatiors-today { padding: 0 8px; text-transform: uppercase; + font-weight: 500; + font-size: 0.9rem; + background-color: var(--accent-color); + border-radius: 5px; + vertical-align: top; } -.main--paginators, -.main--selector { - z-index: 1; +.main--navigatiors-today:active { + background-color: var(--accent-color-dark); } -.main--selector-select { - appearance: none; - padding: 0 5px; +.main--paginators { + z-index: 1; } .main--message { @@ -129,4 +158,18 @@ body { to { transform: rotate(360deg); } +} + +@media only screen and (max-width: 550px) { + .main--month-title { + position: relative; + } + + .main--month-title h2 { + font-size: 1rem; + } + + .main--navigatiors-today { + font-size: 0.8rem; + } } \ No newline at end of file diff --git a/src/css/material-checkbox.css b/src/css/material-checkbox.css new file mode 100644 index 0000000..773c300 --- /dev/null +++ b/src/css/material-checkbox.css @@ -0,0 +1,62 @@ +.md-checkbox { + position: relative; + margin: 1em 0; + text-align: left; +} +.md-checkbox.md-checkbox-inline { + display: inline-block; +} +.md-checkbox label { + cursor: pointer; + display: inline; + line-height: 1.25em; + vertical-align: top; + clear: both; + padding-left: 1px; + box-sizing: border-box; +} +.md-checkbox label:not(:empty) { + padding-left: 0.75em; +} +.md-checkbox label:before, .md-checkbox label:after { + content: ""; + position: absolute; + left: 0; + top: 0; + box-sizing: border-box; +} +.md-checkbox label:before { + width: 1.25em; + height: 1.25em; + background: var(--text-color); + border: 2px solid var(--border-color); + border-radius: 0.125em; + cursor: pointer; + transition: background .3s; +} +.md-checkbox input[type="checkbox"] { + opacity: 0; + width: 1.25em; + margin: 0; + display: block; + float: left; + font-size: inherit; +} +.md-checkbox input[type="checkbox"]:checked + label:before { + background: var(--accent-color); + border: none; +} +.md-checkbox input[type="checkbox"]:checked + label:after { + transform: translate(0.25em, 0.3365384615em) rotate(-45deg); + width: 0.75em; + height: 0.375em; + border: 0.125em solid var(--text-color); + border-top-style: none; + border-right-style: none; +} +.md-checkbox input[type="checkbox"]:disabled + label:before { + border-color: rgba(0, 0, 0, 0.26); +} +.md-checkbox input[type="checkbox"]:disabled:checked + label:before { + background: rgba(0, 0, 0, 0.26); +} \ No newline at end of file diff --git a/src/css/secret.css b/src/css/secret.css index 02af897..2fc08b4 100644 --- a/src/css/secret.css +++ b/src/css/secret.css @@ -11,11 +11,11 @@ background-size: 90vh; } -.fun2 .calendar--week-content .calendar--day:nth-child(odd) .calendar--event { +.fun2 .calendar--week-content .calendar--dates:nth-child(odd) .calendar--event { animation-delay: 1s; } -.fun2 .calendar--week-content .calendar--day:nth-child(even) .calendar--event { +.fun2 .calendar--week-content .calendar--dates:nth-child(even) .calendar--event { animation-delay: 0; } @@ -48,26 +48,30 @@ mix-blend-mode: multiply; } -.fun .calendar--week-content .calendar--day:nth-child(odd) .calendar--event:nth-child(odd) { +.fun .calendar--week-content .calendar--dates:nth-child(odd) .calendar--event:nth-child(odd) { animation: linear infinite 4s 0.6s fun alternate !important; } -.fun .calendar--week-content .calendar--day:nth-child(odd) .calendar--event:nth-child(even) { +.fun .calendar--week-content .calendar--dates:nth-child(odd) .calendar--event:nth-child(even) { animation: linear infinite 4s 0.2s fun alternate !important; } -.fun .calendar--week-content .calendar--day:nth-child(even) .calendar--event:nth-child(odd) { +.fun .calendar--week-content .calendar--dates:nth-child(even) .calendar--event:nth-child(odd) { animation: linear infinite 4s fun alternate-reverse !important; } -.fun .calendar--week-content .calendar--day:nth-child(even) .calendar--event:nth-child(even) { +.fun .calendar--week-content .calendar--dates:nth-child(even) .calendar--event:nth-child(even) { animation: linear infinite 4s 0.5s fun alternate-reverse !important; } -.fun .main--navigatiors-reload span { +.fun .main--navigatiors-reload i { animation: linear infinite 4s 0.3s fun alternate-reverse !important; } - + +.fun-help .calendar--event { + transition: 1s; +} + @keyframes fun { 0% { transform: rotate(0) scale(0.8); @@ -95,14 +99,3 @@ transform: translatey(-20px) scale(1.1) rotate(-1deg); } } - -@media only screen and (max-width: 430px) { - .main--month-title h2 { - font-size: 16px; - line-height: 30px; - } - - .main--navigatiors-reload { - padding-left: 0; - } -} \ No newline at end of file diff --git a/src/css/sidemenu.css b/src/css/sidemenu.css new file mode 100644 index 0000000..f229552 --- /dev/null +++ b/src/css/sidemenu.css @@ -0,0 +1,35 @@ +.sidemenu--container { + display: flex; + flex-direction: column; +} + +.sidemenu--main { + padding: 15px; + flex: 1; +} + +.sidemenu--selector select { + display: block; + border: 0; + padding: 2px; + background-color: var(--accent-color); + font-size: 1rem; + cursor: pointer; + vertical-align: top; +} + +.sidemenu--footer { + padding: 3px 0; +} + +.sidemenu--footer i { + padding-right: 5px; +} + +.sidemenu--footer .icon-secure { + color: green; +} + +.sidemenu--footer .icon-unsecure { + color: rgb(180, 40, 40); +} \ No newline at end of file diff --git a/src/css/tooltip.css b/src/css/tooltip.css index 052e8bb..c221898 100644 --- a/src/css/tooltip.css +++ b/src/css/tooltip.css @@ -1,32 +1,37 @@ .tooltip--event { position: absolute; - font-size: 15px; - width: 70%; - max-width: 250px; - bottom: 0; - border-radius: 5px; - color: white; - border: 1px solid black; + font-size: 0.9rem; + width: 250px; + color: var(--text-color); + box-shadow: 1px 1px 5px rgba(0,0,0,0.7); + + pointer-events: none; + user-select: none; } .tooltip--event-title { font-size: 1.3em; - border-bottom: 1px solid black; padding: 5px; } +.tooltip--event-badge { + font-weight: 500; + font-size: 0.7rem; + padding: 1px; + border-radius: 3px; + margin-left: 6px; + vertical-align: baseline; + background-color: var(--background-color); +} + .tooltip--event-hours { font-size: 1.2em; font-style: italic; } .tooltip--event-sub { - background-color: #373c3d; - border-top: 1px solid #404547; - color: white; -} - -.tooltip--event-sub:first-child() { - border: 0; + background-color: var(--body-color); + border-top: 1px solid var(--border-color); + color: var(--text-color); } diff --git a/src/index.js b/src/index.js index 8c37f35..78af7b0 100644 --- a/src/index.js +++ b/src/index.js @@ -1,23 +1,53 @@ -import '../bower_components/normalize-css/normalize.css' +import './css/colors.css'; import './css/main.css'; import './css/tooltip.css'; import './css/calendar.css'; +import './css/sidemenu.css'; import './css/secret.css'; +import './css/cybericons.css'; +import './css/material-checkbox.css'; import { Elm } from './Main.elm'; // import registerServiceWorker from './service/registerServiceWorker'; +const storageKeyGroup = "group"; +const storageKeySettings = "settings"; + +const urlParams = new URLSearchParams(window.location.search); +const urlGroup = urlParams.get('g'); + +const defaultSettings = { + showHack2g2: true, + showCustom: true, + menuOpened: false, + allWeek: false, +} + +const localGroup = urlGroup || localStorage.getItem(storageKeyGroup) || ""; +const localSettings = (function() { + const s = localStorage.getItem(storageKeySettings); + if (s == undefined) { + return defaultSettings + } + try { + const data = JSON.parse(s) + return {...defaultSettings, ...data} + } catch (error) { + return defaultSettings + } +})() const app = Elm.Main.init({ - node: document.getElementById('root') + node: document.getElementById('root'), + flags: { + group: localGroup, + settings: localSettings, + } }); -const storageKey = "group"; -app.ports.save.subscribe(function (value) { - localStorage.setItem(storageKey, value); - app.ports.saved.send("ok"); -}); -app.ports.doload.subscribe(function () { - app.ports.load.send(localStorage.getItem(storageKey) || ""); + +app.ports.save.subscribe(function ({group, settings}) { + localStorage.setItem(storageKeyGroup, group); + localStorage.setItem(storageKeySettings, JSON.stringify(settings)); }); // registerServiceWorker();