{"version":3,"file":"front.js","sources":["../../node_modules/browser-update/update.npm.js","../../node_modules/vh-check/dist/vh-check.js","../../node_modules/@lunaweb/vega-reactor-js/src/patterns/Component.js","../../sources/javascripts/front/components/Details.js","../../node_modules/@lunaweb/vega-reactor-js/src/patterns/Collapsible.js","../../sources/javascripts/front/components/Filters.js","../../sources/javascripts/front/components/NavigationItem.js","../../sources/javascripts/front/components/Navigation.js","../../sources/javascripts/front/components/Burger.js","../../sources/javascripts/front/components/Header.js","../../sources/javascripts/front/components/SelectMultiple.js","../../sources/javascripts/front/components/Expander.js","../../sources/javascripts/front/components/Notice.js","../../sources/javascripts/front/components/Page.js","../../sources/javascripts/front/utilities/storage.js","../../sources/javascripts/front.js"],"sourcesContent":["//(c)2019, MIT Style License \r\n//it is recommended to directly link to this file because we update the detection code\r\n\"use strict\";\r\n\r\nvar $bu_= new function() {\r\n var s=this;\r\n this.version=\"3.3.44npm\";\r\n this.vsakt = {c:\"106\",f:\"105\",s:\"15.6\",e:\"106\",i:\"12\",ios:\"15.6\",samsung:\"17.0.7\",o:\"89\",e_a:\"104\",o_a:\"70\",y:\"22.7.0\",v:\"5.4\",uc:\"13.4.0\"};\r\n //severely insecure below(!) this version, insecure means remote code execution that is actively being exploited\r\n this.vsinsecure_below = {c:\"100.0.5195.102\",f:\"100.3\",s:\"11.1.1\",e:16,i:11,ios:\"12.3\",samsung:12.0,o:62,o_a:52,y:\"20\",v:\"2.7\",uc:\"13.1\"};\r\n this.vsdefault = {c:-3,f:-3,s:-1,e:17,i:11,ios:10,samsung:9.9,o:-3,o_a:-3,y:20.4,v:2.6,uc:13.0,a:535};\r\n this.names={c:\"Chrome\",f:'Firefox',s:'Safari',e:\"Edge\",i:'Internet Explorer',ios:\"iOS\",samsung:\"Samsung Internet\",o:'Opera',o_a:'Opera', e_a:\"Edge\", y:\"Yandex Browser\",v:\"Vivaldi\",uc:\"UC Browser\",a:\"Android Browser\",x:\"Other\",silk:\"Silk\"};\r\n\r\n this.get_browser = function(ua) {\r\n var n,ua=(ua||navigator.userAgent).replace(\"_\",\".\"),r={n:\"x\",v:0,t:\"other browser\",age_years:undefined,no_device_update:false,available:s.vsakt};\r\n function ignore(reason,pattern){if (new RegExp(pattern,\"i\").test(ua)) return reason;return false}\r\n r.other=ignore(\"bot\",\"Pagespeed|pingdom|Preview|ktxn|dynatrace|Ruxit|PhantomJS|Headless|Lighthouse|bot|spider|archiver|transcoder|crawl|checker|monitoring|prerender|screenshot|python-|php|uptime|validator|fetcher|facebook|slurp|google|yahoo|node|mail.ru|github|cloudflare|addthis|thumb|proxy|feed|fetch|favicon|link|http|scrape|seo|page|search console|AOLBuild|Teoma|Expeditor\")||\r\n ignore(\"TV\",\"SMART-TV|SmartTV\") ||\r\n ignore(\"niche browser\",\"motorola edge|Comodo.Dragon|OculusBrowser|Falkon|Brave|Classic Browser|Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|Basilisk|QupZilla|Otter|Midori|qutebrowser|slimjet\") ||\r\n ignore(\"mobile without upgrade path or landing page\",\"OPR/44.12.2246|cros|kindle|tizen|silk|blackberry|bb10|RIM|PlayBook|meego|nokia|ucweb|ZuneWP7|537.85.10\");\r\n// ignore(\"android(chrome) web view\",\"; wv\");\r\n r.embedded=/\"QtWebEngine|Teams|Electron/i.test(ua);\r\n r.mobile=(/iphone|ipod|ipad|android|mobile|phone|ios|iemobile/i.test(ua));\r\n r.discontinued=(/netscape|greenbrowser|camino|flot|fennec|galeon|coolnovo/i.test(ua));\r\n\r\n var pats=[\r\n [\"CriOS.VV\",\"c\",'ios'],\r\n [\"FxiOS.VV\",\"f\",'ios'],\r\n [\"Trident.*rv:VV\",\"i\",'i'],\r\n [\"Trident.VV\",\"i\",'i'],\r\n [\"UCBrowser.VV\",\"uc\",'c'],\r\n [\"MSIE.VV\",\"i\",'i'],\r\n [\"Edge.VV\",\"e\",'e'],\r\n [\"Edg.VV\",\"e\",'c'],\r\n [\"EdgA.VV\",\"e_a\",'c'],\r\n [\"Vivaldi.VV\",\"v\",'c'],\r\n [\"Android.*OPR.VV\",\"o_a\",'c'],\r\n [\"OPR.VV\",\"o\",'c'],\r\n [\"YaBrowser.VV\",\"y\",'c'],\r\n [\"SamsungBrowser.VV\",\"samsung\",'c'],\r\n [\"Silk.VV\",\"silk\",'c'],\r\n [\"Chrome.VV\",\"c\",'c'],\r\n [\"Firefox.VV\",\"f\",'f'],\r\n [\" OS.VV.*Safari\",\"ios\",'ios'],\r\n [\"Version.VV.*Safari\",\"s\",'s'],\r\n [\"Safari.VV\",\"s\",'s'],\r\n [\"Opera.*Version.VV\",\"o\"],\r\n [\"Opera.VV\",\"o\"]\r\n ];\r\n var VV=\"(\\\\d+\\\\.?\\\\d+\\\\.?\\\\d*\\\\.?\\\\d*)\";\r\n for (var i=0; i < pats.length; i++) {\r\n if (ua.match(new RegExp(pats[i][0].replace(\"VV\",VV),\"i\"))) {\r\n r.n=pats[i][1];\r\n r.engine=pats[i][2];\r\n break;\r\n } \r\n }\r\n r.fullv=RegExp.$1;\r\n r.v=parseFloat(r.fullv);\r\n\r\n // Special treatment of some systems\r\n //do not notify old systems since there is no up-to-date browser available\r\n if (/windows.nt.5|windows.nt.4|windows.nt.6.0|windows.95|windows.98|os x 10.2|os x 10.3|os x 10.4|os x 10.5/i.test(ua)) {\r\n r.no_device_update=true;\r\n r.available={}\r\n }\r\n //Safari on iOS 13 in Desktop mode\r\n if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) {\r\n r.n=\"ios\";\r\n r.engine='ios';\r\n r.fullv=r.v=13;\r\n r.no_device_update=true;//For now, never show a message, TODO!\r\n }\r\n //iOS\r\n if (/iphone|ipod|ipad|ios/i.test(ua)) {\r\n ua.match(new RegExp(\"OS.\"+VV,\"i\"));\r\n r.n=\"ios\";\r\n r.fullv=RegExp.$1;\r\n r.v=parseFloat(r.fullv);\r\n r.engine='ios';\r\n var av=s.available_ios(ua,r.v);\r\n /*\r\n var newmap={10:\"10.3.4\",11:\"12.4.3\",12:\"12.4.3\",13:s.vsakt[\"ios\"]};\r\n if (av in newmap)\r\n av=newmap[av];\r\n */\r\n if (av < 12 && Math.round(r.v)===11)// all devices with ios 11 support ios 12\r\n av=12\r\n r.available = {\"ios\": av};\r\n if (parseFloat(r.available.ios)<11)\r\n r.no_device_update=true;\r\n }\r\n //winxp/vista/2003\r\n if (/windows.nt.5.1|windows.nt.5.2|windows.nt.6.0/i.test(ua)) {\r\n r.available={\"c\":49.9,\"f\":52.9}\r\n r.no_device_update=true;\r\n }\r\n //old mac\r\n if (/os x 10.6/i.test(ua)) {\r\n r.available = {\"s\": \"5.1.10\", \"c\": 49.9, \"f\": 48}\r\n r.no_device_update=true;\r\n }\r\n\r\n if (/os x 10.7|os x 10.8/i.test(ua)) {\r\n r.available = {\"s\": \"6.2.8\", \"c\": 49.9, \"f\": 48}\r\n r.no_device_update=true;\r\n }\r\n if (/os x 10.9/i.test(ua))\r\n r.available.s=\"9.1.3\"\r\n\r\n if (/os x 10.10/i.test(ua))\r\n r.available.s=\"10.1.2\"\r\n\r\n //check for android stock browser\r\n if (ua.indexOf('Android')>-1 && r.n===\"s\") {\r\n var v=parseInt((/WebKit\\/([0-9]+)/i.exec(ua) || 0)[1],10) || 2000;\r\n if (v <= 534) {\r\n r.n=\"a\";\r\n r.fullv=r.v=v;\r\n r.is_insecure=true;\r\n }\r\n }\r\n\r\n r.t=s.names[r.n]+\" \"+r.v;\r\n r.is_supported=r.is_latest= !s.vsakt[r.n] ? undefined : s.less(r.fullv,s.vsakt[r.n])<=0;\r\n \r\n r.vmaj=Math.round(r.v);\r\n\r\n r.is_insecure= r.is_insecure|| !s.vsinsecure_below[r.n] ? undefined : s.less(r.fullv,s.vsinsecure_below[r.n])===1;\r\n \r\n if ((r.n===\"f\" && (r.vmaj===102)) || (r.n===\"i\" && r.vmaj===11)) {\r\n r.is_supported=true;\r\n r.is_insecure=false;\r\n if (r.n===\"f\")\r\n r.esr=true;\r\n }\r\n \r\n if (r.n===\"ios\" && r.v>10.3)\r\n r.is_supported=true;\r\n if (r.n===\"a\" || r.n===\"x\")\r\n r.t=s.names[r.n];\r\n if (r.n===\"e\") {\r\n r.t = s.names[r.n] + \" \" + r.vmaj;\r\n r.is_supported = s.less(r.fullv, \"18.15063\") != 1\r\n }\r\n if (r.n in [\"c\",\"f\",\"o\",\"e\"] && s.less(r.fullv,parseFloat(s.vsakt[r.n])-1)<=0)\r\n r.is_supported=true; //mark also the version before the current version as supported to make the transitions smoother\r\n\r\n var releases_per_year={'f':7,'c':8,'o':8,'i':1,'e':1,'s':1}//,'v':1}\r\n if (releases_per_year[r.n]) {\r\n r.age_years=Math.round(((s.vsakt[r.n]-r.v)/releases_per_year[r.n])*10)/10 || 0\r\n }\r\n var engines={e:\"Edge.VV\",c:\"Chrome.VV\",f:\"Firefox.VV\",s:\"Version.VV\",i:\"MSIE.VV\",\"ios\":\" OS.VV\"}\r\n if (r.engine) {\r\n ua.match(new RegExp(engines[r.engine].replace(\"VV\",VV),\"i\"))\r\n r.engine_version=parseFloat(RegExp.$1)\r\n } \r\n return r\r\n}\r\nthis.semver = function(vstr) {\r\n if (vstr instanceof Array)\r\n return vstr\r\n var x = (vstr+(\".0.0.0\")).split('.')\r\n return [parseInt(x[0]) || 0, parseInt(x[1]) || 0, parseInt(x[2]) || 0, parseInt(x[3]) || 0]\r\n}\r\nthis.less= function(v1,v2) {\r\n //semantic version comparison: returns 1 if v1v2\r\n v1=s.semver(v1)\r\n v2=s.semver(v2)\r\n for (var i=0; ;i++) {\r\n if (i>=v1.length) return i>=v2.length ? 0 : 1;\r\n if (i>=v2.length) return -1;\r\n var diff = v2[i]-v1[i]\r\n if (diff) return diff>0 ? 1 : -1;\r\n }\r\n}\r\nthis.available_ios=function(ua,v) {\r\n //https://support.apple.com/de-de/guide/iphone/iphe3fa5df43/ios\r\n var h = Math.max(window.screen.height, window.screen.width),pr = window.devicePixelRatio\r\n if (/ipad/i.test(ua)) {\r\n if (h == 1024 && pr == 2) // iPad 3 (iOS 9), 4, 5, Mini 2, Mini 3, Mini 4, Air, Air 2, Pro 9.7\r\n return 10//? only ipad 4 has ios 10, all other can have ios 11\r\n if (h == 1112)// iPad Pro 10.5\r\n return 15;\r\n if (h == 1366)//iPad Pro 12.9, Pro 12.9 (2nd Gen)\r\n return 15\r\n if (h == 1024 && v < 6)\r\n return 5 // iPad\r\n return 9 // iPad 2, iPad Mini\r\n }\r\n if (pr == 1)// 1/3G/3GS\r\n return 6//for 3GS\r\n if (pr == 3)\r\n return 15\r\n if (h == 812)// X\r\n return 15\r\n if ((h == 736 || h == 667))// && pr == 3)// 6+/6s+/7+ and 8+ or // 6+/6s+/7+ and 8+ in zoom mode + // 6/6s/7 and 8\r\n return 15//slightly wrong as latest version for iphone 6 is 12\r\n if (h == 568) // 5/5C/5s/SE or 6/6s/7 and 8 in zoom mode\r\n return 10\r\n if (h == 480) // i4/4s\r\n return 7\r\n return 6\r\n}\r\n/*\r\nthis.sub= function(v,minus) {\r\n //semantic version subtraction\r\n v=s.semver(v)\r\n minus=s.semver(minus)\r\n for (var i=0; ;i++) {\r\n if (i>=v.length||i>minus.length) break;\r\n v[i]-=v[minus];\r\n }\r\n return v.join('.')\r\n}\r\n*/\r\n}\r\n\r\nwindow.$bu_getBrowser=$bu_.get_browser;\r\n\r\nvar $buo = function(op,test) {\r\nvar n = window.navigator,b;\r\nop=window._buorgres=op||{};\r\nvar ll = op.l||(n.languages ? n.languages[0] : null) || n.language || n.browserLanguage || n.userLanguage||document.documentElement.getAttribute(\"lang\")||\"en\";\r\nop.llfull=ll.replace(\"_\",\"-\").toLowerCase().substr(0,5);\r\nop.ll=op.llfull.substr(0,2);\r\nop.domain=op.domain!==undefined?op.domain:(/file:/.test(location.href)?\"https:\":\"\")+\"//browser-update.org\";\r\nop.apiver=op.api||op.c||-1;\r\nop.jsv=$bu_.version;\r\n\r\nvar required_min=(op.apiver<2018&&{i:10,f:11,o:21,s:8,c:30})||{};\r\n\r\nvar vs=op.notify||op.vs||{};//legacy config: maximum version to notify\r\nif (vs.e!==0)\r\n vs.e=vs.e||vs.i;\r\nvs.i=vs.i||vs.e;\r\nvar required=op.required||{};//minimum browser versions needed\r\nif (required.e!==0)\r\n required.e=required.e||required.i;\r\nif (!required.i) {\r\n required.i=required.e;\r\n $bu_.vsakt.i=$bu_.vsakt.e;\r\n}\r\n\r\nfor (b in $bu_.vsdefault) {\r\n if (vs[b]) {//legacy style config: browsers to notify\r\n if ($bu_.less(vs[b],0)>=0) // required <= 0\r\n required[b]= parseFloat($bu_.vsakt[b])+parseFloat(vs[b])+0.01\r\n else\r\n required[b] = parseFloat(vs[b]) + 0.01\r\n }\r\n if (!(b in required) || required[b]==null)\r\n required[b]=$bu_.vsdefault[b]\r\n if ($bu_.less(required[b],0)>=0) // case for required <= 0 --> relative to latest version\r\n required[b]=parseFloat($bu_.vsakt[b])+parseFloat(required[b]) // TODO: make it work for string version\r\n if (required_min[b] && $bu_.less(required[b],required_min[b])===1) // required < required_min\r\n required[b]=required_min[b]\r\n}\r\nrequired.ios=required.ios||required.s;\r\n\r\nif (required.i<79 && required.i>65)\r\n required.i=required.i-60\r\nif (required.e<79 && required.e>65)\r\n required.e=required.e-60\r\nop.required=required;\r\nop.reminder=op.reminder<0.1 ? 0 : op.reminder||(24*7);\r\nop.reminderClosed=op.reminderClosed<1 ? 0 : op.reminderClosed||(24*7);\r\nop.onshow = op.onshow||function(o){};\r\nop.onclick = op.onclick||function(o){};\r\nop.onclose = op.onclose||function(o){};\r\nop.pageurl = op.pageurl || location.hostname || \"x\";\r\nop.newwindow=(op.newwindow!==false);\r\n\r\nop.test=test||op.test||(location.hash===\"#test-bu\")||false;\r\nop.ignorecookie=op.ignorecookie||location.hash===\"#ignorecookie-bu\";\r\n\r\nop.reasons=[];\r\nop.hide_reasons=[];\r\nfunction check_show(op) {\r\n var bb=op.browser=$bu_.get_browser(op.override_ua);\r\n op.is_below_required = required[bb.n] && $bu_.less(bb.fullv,required[bb.n])===1; //bb.fullv0)\r\n return false\r\n if (op.reasons.length>0)\r\n return true\r\n return false\r\n }\r\n\r\nop.notified=check_show(op);\r\n\r\nop.already_shown=document.cookie.indexOf(\"browserupdateorg=pause\")>-1 && !op.ignorecookie;\r\n\r\nif (!op.test && (!op.notified || op.already_shown))\r\n return;\r\n\r\nop.setCookie=function(hours) { //sets a cookie that the user has already seen the notification, closed it or permanently wants to hide it. No information on the user is stored.\r\n document.cookie = 'browserupdateorg=pause; expires='+(new Date(new Date().getTime()+3600000*hours)).toGMTString()+'; path=/; SameSite=Lax'+(/https:/.test(location.href)?'; Secure':'')\r\n}\r\n\r\nif (op.already_shown && (op.ignorecookie || op.test))\r\n op.setCookie(-10)// remove old cookies if in test mode\r\n\r\nif (op.reminder>0)\r\n op.setCookie(op.reminder);\r\n\r\nif (op.nomessage) {\r\n op.onshow(op);\r\n return;\r\n}\r\n\r\nvar e=document.createElement(\"script\");\r\ne.src = op.jsshowurl||op.domain+\"/update.show.min.js\";\r\ndocument.body.appendChild(e);\r\n};\r\n\r\n\r\nif( typeof( module ) !== 'undefined' ) {\r\n module.exports = $buo;\r\n}\r\n\r\n\r\n\r\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.vhCheck = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n // don't know a better way to get the size of a CSS 100vh…\r\n function createTestElement() {\r\n var testElement = document.createElement('div');\r\n testElement.style.cssText =\r\n 'position: fixed; top: 0; height: 100vh; pointer-events: none;';\r\n document.documentElement.insertBefore(testElement, document.documentElement.firstChild);\r\n return testElement;\r\n }\r\n function removeTestElement(element) {\r\n document.documentElement.removeChild(element);\r\n }\r\n // in some browsers this will be bigger than window.innerHeight\r\n function checkSizes() {\r\n var vhTest = createTestElement();\r\n var windowHeight = window.innerHeight;\r\n var vh = vhTest.offsetHeight;\r\n var offset = vh - windowHeight;\r\n removeTestElement(vhTest);\r\n return {\r\n vh: vh,\r\n windowHeight: windowHeight,\r\n offset: offset,\r\n isNeeded: offset !== 0,\r\n value: 0,\r\n };\r\n }\r\n // export\r\n function noop() { }\r\n function computeDifference() {\r\n var sizes = checkSizes();\r\n sizes.value = sizes.offset;\r\n return sizes;\r\n }\r\n function redefineVhUnit() {\r\n var sizes = checkSizes();\r\n sizes.value = sizes.windowHeight * 0.01;\r\n return sizes;\r\n }\n\n var methods = /*#__PURE__*/Object.freeze({\n noop: noop,\n computeDifference: computeDifference,\n redefineVhUnit: redefineVhUnit\n });\n\n function isString(text) {\r\n return typeof text === \"string\" && text.length > 0;\r\n }\r\n function isFunction(f) {\r\n return typeof f === \"function\";\r\n }\r\n var defaultOptions = Object.freeze({\r\n cssVarName: 'vh-offset',\r\n redefineVh: false,\r\n method: computeDifference,\r\n force: false,\r\n bind: true,\r\n updateOnTouch: false,\r\n onUpdate: noop,\r\n });\r\n function getOptions(options) {\r\n // old options handling: only redefine the CSS var name\r\n if (isString(options)) {\r\n return __assign({}, defaultOptions, { cssVarName: options });\r\n }\r\n // be sure to have a configuration object\r\n if (typeof options !== 'object')\r\n return defaultOptions;\r\n // make sure we have the right options to start with\r\n var finalOptions = {\r\n force: options.force === true,\r\n bind: options.bind !== false,\r\n updateOnTouch: options.updateOnTouch === true,\r\n onUpdate: isFunction(options.onUpdate) ? options.onUpdate : noop,\r\n };\r\n // method change\r\n var redefineVh = options.redefineVh === true;\r\n finalOptions.method =\r\n methods[redefineVh ? 'redefineVhUnit' : 'computeDifference'];\r\n finalOptions.cssVarName = isString(options.cssVarName)\r\n ? options.cssVarName\r\n : redefineVh\r\n ? /*\r\n when redefining vh unit we follow this article name convention\r\n https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\r\n */\r\n 'vh'\r\n : defaultOptions.cssVarName;\r\n return finalOptions;\r\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n var passiveSupported = false;\r\n var eventListeners = [];\r\n /* istanbul ignore next */\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function () {\r\n passiveSupported = true;\r\n },\r\n });\r\n window.addEventListener(\"test\", options, options);\r\n window.removeEventListener(\"test\", options, options);\r\n }\r\n catch (err) {\r\n passiveSupported = false;\r\n }\r\n function addListener(eventName, callback) {\r\n eventListeners.push({\r\n eventName: eventName,\r\n callback: callback,\r\n });\r\n window.addEventListener(eventName, callback, \r\n /* istanbul ignore next */\r\n passiveSupported ? { passive: true } : false);\r\n }\r\n function removeAll() {\r\n eventListeners.forEach(function (config) {\r\n window.removeEventListener(config.eventName, config.callback);\r\n });\r\n eventListeners = [];\r\n }\n\n function updateCssVar(cssVarName, result) {\r\n document.documentElement.style.setProperty(\"--\" + cssVarName, result.value + \"px\");\r\n }\r\n function formatResult(sizes, options) {\r\n return __assign({}, sizes, { unbind: removeAll, recompute: options.method });\r\n }\r\n function vhCheck(options) {\r\n var config = Object.freeze(getOptions(options));\r\n var result = formatResult(config.method(), config);\r\n // usefulness check\r\n if (!result.isNeeded && !config.force) {\r\n return result;\r\n }\r\n updateCssVar(config.cssVarName, result);\r\n config.onUpdate(result);\r\n // enabled by default\r\n if (!config.bind)\r\n return result;\r\n function onWindowChange() {\r\n window.requestAnimationFrame(function () {\r\n var sizes = config.method();\r\n updateCssVar(config.cssVarName, sizes);\r\n config.onUpdate(formatResult(sizes, config));\r\n });\r\n }\r\n // be sure we don't duplicates events listeners\r\n result.unbind();\r\n // listen for orientation change\r\n // - this can't be configured\r\n // - because it's convenient and not a real performance bottleneck\r\n addListener('orientationchange', onWindowChange);\r\n // listen to touch move for scrolling\r\n // – disabled by default\r\n // - listening to scrolling can be expansive…\r\n if (config.updateOnTouch) {\r\n addListener('touchmove', onWindowChange);\r\n }\r\n return result;\r\n }\n\n return vhCheck;\n\n})));\n","/**\n * Name: Component\n * Description: Base model for all components\n */\n\nexport default class Component {\n static settings = {};\n\n #element;\n #mounted;\n #settings;\n\n #listeners = {};\n\n constructor (element, options = {}) {\n this.#element = element;\n this.#mounted = false;\n this.#settings = {\n ...Component.settings,\n ...options\n };\n }\n\n get element () {\n return this.#element;\n }\n\n get mounted () {\n return this.#mounted;\n }\n\n get settings () {\n return this.#settings;\n }\n\n getNode (parameter) {\n let element = null;\n\n if (parameter instanceof Element) {\n element = parameter;\n } else if (typeof parameter === 'string') {\n const testSelector = this.#element.querySelector(parameter);\n element = testSelector ? testSelector : element;\n }\n\n return element;\n }\n\n fire (type, data) {\n var listeners = this.#listeners[type] || [];\n\n listeners.forEach(function (listener) {\n listener(data);\n });\n }\n\n on (type, handler) {\n if (typeof this.#listeners[type] === 'undefined') {\n this.#listeners[type] = [];\n }\n\n this.#listeners[type].push(handler);\n\n return this;\n }\n\n off (type, handler) {\n var index = this.#listeners[type].indexOf(handler);\n\n if (index > -1) {\n this.#listeners[type].splice(index, 1);\n }\n\n return this;\n }\n\n mount () {\n this.#element.classList.add('is-mounted');\n this.#mounted = true;\n this.fire('mount', this);\n }\n\n unmount () {\n this.#element.classList.remove('is-mounted');\n this.#mounted = false;\n this.fire('unmount', this);\n }\n}\n","/**\n * Name: Details\n * Description: Collapsing section\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Details extends Component {\n static settings = {\n open: false,\n rememberExpanded: false,\n i18n: {\n hideSection: 'Masquer la section',\n showSection: 'Afficher la section',\n }\n };\n\n #control;\n #content;\n #label;\n\n #handleControlClick;\n #handleContentBeforeMatch;\n #handleHashChange;\n #handleToggle;\n\n constructor (element, options = {}) {\n super(element, {\n ...Details.settings,\n ...options\n });\n\n this.#control = this.element.querySelector('.js-details-control');\n this.#content = this.element.querySelector('.js-details-content');\n\n if (!this.element.getAttribute('id')) {\n throw new Error(`Details error: An id is required on the '.js-details' element.`, this.element);\n }\n\n if (!this.#control) {\n throw new Error(`Details error: A control with the 'js-details-control' class is missing.`, this.element);\n }\n\n if (!this.#content) {\n throw new Error(`Details error: A content with the 'js-details-content' class is missing.`, this.element);\n }\n\n if (!this.isNativeDetails) {\n this.#label = this.element.querySelector('.js-details-label');\n\n if (!this.#label) {\n throw new Error(`Details error: A label with the 'js-details-label' class is missing.`, this.element);\n }\n }\n\n if (this.settings.rememberExpanded) {\n try {\n this.sessionStorageValue;\n } catch (e) {\n this.settings.rememberExpanded = false;\n console.error('sessionStorage is not usable.');\n }\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleContentBeforeMatch = this._handleContentBeforeMatch.bind(this);\n this.#handleHashChange = this._handleHashChange.bind(this);\n this.#handleToggle = this._handleToggle.bind(this);\n }\n\n get control () {\n return this.#control;\n }\n\n get content () {\n return this.#content;\n }\n\n get expanded () {\n let state;\n\n if (this.isNativeDetails) {\n state = this.element.open;\n } else {\n state = this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n return state;\n }\n\n get sessionStorageValue () {\n return sessionStorage.getItem(this.element.getAttribute('id'));\n }\n\n get isNativeDetails () {\n return this.element.tagName.toLowerCase() === \"details\";\n }\n\n set sessionStorageValue (value) {\n sessionStorage.setItem(this.element.getAttribute('id'), value);\n }\n\n _handleControlClick (e) {\n this.toggle();\n\n if (this.additionalControl && e.target === this.additionalControl) {\n this.#control.focus();\n }\n }\n\n _handleContentBeforeMatch (e) {\n this.open();\n }\n\n _handleHashChange (e) {\n if (this.element.id === location.hash.substring(1)) {\n this.open();\n }\n }\n\n _handleToggle (e) {\n const state = this.expanded ? 'open' : 'close';\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = state;\n }\n\n this.fire(state, this);\n }\n\n convertControlToButton () {\n let control = document.createElement('button');\n control.type = 'button';\n const attributes = this.#control.getAttributeNames().reduce((acc, name) => {\n control.setAttribute(name, this.#control.getAttribute(name));\n }, {});\n control.innerHTML = this.#control.innerHTML;\n this.#control.replaceWith(control);\n this.#control = control;\n\n if (!this.isNativeDetails) {\n this.#label = this.element.querySelector('.js-details-label');\n }\n }\n\n resetControl () {\n let control = document.createElement('span');\n const attributes = this.#control.getAttributeNames().reduce((acc, name) => {\n control.setAttribute(name, this.#control.getAttribute(name));\n }, {});\n control.removeAttribute('type');\n control.innerHTML = this.#control.innerHTML;\n this.#control.replaceWith(control);\n this.#control = control;\n }\n\n toggle () {\n this.expanded ? this.close() : this.open();\n }\n\n open () {\n if (this.isNativeDetails) {\n this.element.open = true;\n } else {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#content.removeAttribute('hidden');\n this.#label.innerHTML = this.settings.i18n.hideSection;\n }\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = 'open';\n }\n\n this.fire('open', this);\n }\n\n close () {\n if (this.isNativeDetails) {\n this.element.open = false;\n } else {\n this.#control.setAttribute('aria-expanded', 'false');\n this.#content.setAttribute('hidden', 'until-found');\n this.#label.innerHTML = this.settings.i18n.showSection;\n }\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = 'close';\n }\n\n this.fire('close', this);\n }\n\n mount () {\n window.addEventListener('hashchange', this.#handleHashChange);\n\n if (!this.isNativeDetails) {\n this.convertControlToButton();\n this.#control.setAttribute('aria-controls', this.#content.getAttribute('id'));\n this.#content.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n this.#content.addEventListener('beforematch', this.#handleContentBeforeMatch);\n } else {\n this.element.addEventListener('toggle', this.#handleToggle);\n }\n\n if (this.element.id === location.hash.substring(1)) {\n this.open();\n } else if (this.settings.rememberExpanded && this.sessionStorageValue) {\n this.sessionStorageValue === 'open' ? this.open() : this.close();\n } else {\n this.settings.open ? this.open() : this.close();\n }\n\n super.mount();\n }\n\n unmount () {\n window.removeEventListener('hashchange', this.#handleHashChange);\n\n if (!this.isNativeDetails) {\n this.#content.removeEventListener('beforematch', this.#handleContentBeforeMatch);\n this.#control.removeEventListener('click', this.#handleControlClick);\n\n this.#content.removeAttribute('hidden');\n this.#content.removeAttribute('aria-labelledby');\n this.#control.removeAttribute('tabindex');\n this.#control.removeAttribute('role');\n this.#control.removeAttribute('aria-controls');\n this.#control.removeAttribute('aria-expanded');\n this.resetControl();\n } else {\n this.element.addEventListener('toggle', this.#handleToggle);\n }\n\n if (this.settings.rememberExpanded) {\n sessionStorage.removeItem(this.element.getAttribute('id'));\n }\n\n if (this.additionalControl) {\n this.removeAdditionalControl();\n }\n\n super.unmount();\n }\n}\n","import Component from './Component';\n\nexport default class Collapsible extends Component {\n static settings = {\n isPersistent: false,\n hasTransition: false,\n control: '.js-collapse-control',\n target: '.js-collapse-target',\n };\n\n #control;\n #target;\n #isHiding;\n #handleControlClick;\n #handleFocusout;\n #handleKeydown;\n #handleOutsideClick;\n #handleTransitionEnd;\n\n constructor (element, options = {}) {\n super(element, {\n ...Collapsible.settings,\n ...options\n });\n\n this.#isHiding = false;\n\n this.#control = this.getNode(this.settings.control);\n this.#target = this.getNode(this.settings.target);\n\n if (!this.#control) {\n throw new Error(`Collpase error: A control with the '${ this.settings.control }' selector is missing.`);\n }\n\n if (!this.#target) {\n throw new Error(`Collpase error: A target with the '${ this.settings.target }' selector is missing.`);\n }\n\n if (!this.#control.getAttribute('id')) {\n throw new Error(`Collpase error: The control needs an id to work correctly.`, this.#control);\n }\n\n if (!this.#target.getAttribute('id')) {\n throw new Error(`Collpase error: The target needs an id to work correctly.`, this.#target);\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleFocusout = this._handleFocusout.bind(this);\n this.#handleKeydown = this._handleKeydown.bind(this);\n this.#handleOutsideClick = this._handleOutsideClick.bind(this);\n this.#handleTransitionEnd = this._handleTransitionEnd.bind(this);\n }\n\n get control () {\n return this.#control;\n }\n\n get target () {\n return this.#target;\n }\n\n get expanded () {\n return this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n set expanded (state) {\n this.#control.setAttribute('aria-expanded', `${state}`);\n }\n\n get isHiding () {\n return this.#isHiding;\n }\n\n _handleControlClick (e) {\n this.toggle();\n }\n\n _handleFocusout (e) {\n if (e.relatedTarget && !this.#target.contains(e.relatedTarget) && !this.#control.contains(e.relatedTarget)) {\n this.close(false);\n }\n }\n\n _handleKeydown (e) {\n // Close on escape\n if (this.expanded && e.keyCode === 27) {\n this.toggle();\n }\n }\n\n _handleOutsideClick (e) {\n if (!this.#target.contains(e.target) && !this.#control.contains(e.target)) {\n this.close(false);\n }\n }\n\n _handleTransitionEnd (e) {\n if (e.target === this.#target) {\n this.#target.removeEventListener('transitionend', this.#handleTransitionEnd);\n this.#target.classList.remove('is-hiding');\n this.#isHiding = false;\n this.close();\n }\n }\n\n open () {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#target.removeAttribute('hidden');\n\n if (!this.settings.isPersistent) {\n document.addEventListener('focusout', this.#handleFocusout);\n document.addEventListener('click', this.#handleOutsideClick);\n }\n\n this.fire('open', this);\n }\n\n close (refocus = true) {\n if (!this.settings.isPersistent) {\n document.removeEventListener('focusout', this.#handleFocusout);\n document.removeEventListener('click', this.#handleOutsideClick);\n }\n\n this.#control.setAttribute('aria-expanded', 'false');\n this.#target.setAttribute('hidden', '');\n this.#target.classList.remove('is-hiding');\n\n if (refocus) {\n this.#control.focus();\n }\n\n this.fire('close', this);\n }\n\n hide () {\n this.#target.classList.add('is-hiding');\n this.#isHiding = true;\n this.#target.addEventListener('transitionend', this.#handleTransitionEnd);\n }\n\n toggle () {\n if (this.settings.hasTransition) {\n this.expanded ? this.hide() : this.open();\n } else {\n this.expanded ? this.close() : this.open();\n }\n }\n\n mount () {\n this.#target.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n this.#target.setAttribute('tabindex', '-1');\n this.#target.setAttribute('hidden', '');\n this.#control.setAttribute('aria-haspopup', 'true');\n this.#control.setAttribute('aria-expanded', 'false');\n this.#control.setAttribute('aria-controls', this.#target.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n this.#target.addEventListener('keydown', this.#handleKeydown);\n\n super.mount();\n }\n\n unmount () {\n if (this.expanded) {\n this.close(false);\n }\n\n this.#control.removeEventListener('click', this.#handleControlClick);\n this.#target.removeEventListener('keydown', this.#handleKeydown);\n\n this.#control.removeAttribute('aria-haspopup');\n this.#control.removeAttribute('aria-expanded');\n this.#control.removeAttribute('aria-controls');\n this.#target.removeAttribute('aria-labelledby');\n this.#target.removeAttribute('tabindex');\n this.#target.removeAttribute('hidden');\n\n super.unmount();\n }\n}\n","/**\n * Name: Filters\n */\n\nimport Collapsible from \"@lunaweb/vega-reactor-js/src/patterns/Collapsible\";\n\nexport default class Filters extends Collapsible {\n static settings = {\n control: '.js-filters-control',\n controlLabel: '.js-filters-control-label',\n target: '.js-filters-body',\n i18n: {\n hideSection: 'Masquer les filtres',\n showSection: 'Afficher les filtres',\n }\n };\n\n #controlLabel;\n\n constructor (element, options = {}) {\n super(element, {\n ...Filters.settings,\n ...options,\n });\n\n this.#controlLabel = this.getNode(this.settings.controlLabel);\n }\n\n get mode () {\n return this.element.dataset.filtersMode ? this.element.dataset.filtersMode : \"vertical\";\n }\n\n open () {\n this.#controlLabel.innerHTML = this.settings.i18n.hideSection;\n super.open();\n }\n\n close () {\n this.#controlLabel.innerHTML = this.settings.i18n.showSection;\n super.close();\n }\n}\n","/**\n * Name: NavigationControl\n * Description: Main navigation item\n */\n\nimport Collapsible from \"@lunaweb/vega-reactor-js/src/patterns/Collapsible\";\n\nexport default class NavigationItem extends Collapsible {\n static settings = {\n control: '.js-navigation-control',\n target: '.js-navigation-megamenu',\n close: '.js-navigation-close',\n };\n\n #closeButton;\n #handleCloseClick;\n\n constructor (element, options = {}) {\n super(element, {\n ...NavigationItem.settings,\n ...options,\n });\n\n this.#closeButton = this.getNode(this.settings.close);\n this.#handleCloseClick = this._handleCloseClick.bind(this);\n }\n\n _handleCloseClick (e) {\n super.close();\n }\n\n mount () {\n super.mount();\n\n if (this.#closeButton) {\n this.#closeButton.addEventListener('click', this.#handleCloseClick);\n }\n }\n\n unmount () {\n if (this.#closeButton) {\n this.#closeButton.removeEventListener('click', this.#handleCloseClick);\n }\n\n super.unmount();\n }\n}\n","/**\n * Name: Navigation\n * Description: Main navigation\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\nimport NavigationItem from \"./NavigationItem\";\n\nexport default class Navigation extends Component {\n static settings = {};\n\n #itemElements;\n #items;\n\n #handleNavigationItemClose;\n #handleNavigationItemOpen;\n\n constructor (element, options = {}) {\n super(element, {\n ...Navigation.settings,\n ...options\n });\n\n this.#itemElements = this.element.querySelectorAll('.js-navigation-item');\n this.#items = [];\n\n this.#handleNavigationItemClose = this._handleNavigationItemClose.bind(this);\n this.#handleNavigationItemOpen = this._handleNavigationItemOpen.bind(this);\n }\n\n set mode (format) {\n if (format === 'horizontal') {\n this.#items.forEach((navigationItem) => {\n navigationItem.target.classList.add('is-horizontal');\n });\n } else {\n this.#items.forEach((navigationItem) => {\n navigationItem.target.classList.remove('is-horizontal');\n });\n }\n }\n\n get currentItem () {\n let expandedItem = null;\n this.#items.forEach((item) => {\n expandedItem = item.expanded ? item : expandedItem;\n });\n\n return expandedItem;\n }\n\n _handleNavigationItemOpen (navigationItem) {\n this.fire('update', this);\n }\n\n _handleNavigationItemClose (navigationItem) {\n this.fire('update', this);\n }\n\n mount () {\n this.#itemElements.forEach((itemElement) => {\n const navigationItem = new NavigationItem(itemElement);\n navigationItem.on('close', this.#handleNavigationItemClose);\n navigationItem.on('open', this.#handleNavigationItemOpen);\n navigationItem.mount();\n this.#items.push(navigationItem);\n });\n\n super.mount();\n }\n\n unmount () {\n this.#items.forEach((navigationItem) => {\n navigationItem.off('close', this.#handleNavigationItemClose);\n navigationItem.off('open', this.#handleNavigationItemOpen);\n navigationItem.unmount();\n });\n\n this.#items = [];\n\n super.unmount();\n }\n}\n","/**\n * Name: Burger\n */\n\nimport Collapsible from \"@lunaweb/vega-reactor-js/src/patterns/Collapsible\";\n\nexport default class Burger extends Collapsible {\n static settings = {};\n\n constructor (element, options = {}) {\n super(element, {\n ...Burger.settings,\n ...options,\n });\n }\n\n get isDisplayed () {\n return getComputedStyle(this.element).display !== 'none';\n }\n\n open () {\n super.open();\n\n this.target.focus();\n }\n\n mount () {\n super.mount();\n this.target.classList.add('has-burger');\n this.target.setAttribute('tabindex', '-1');\n }\n\n unmount () {\n super.unmount();\n this.target.classList.remove('has-burger');\n this.target.removeAttribute('tabindex');\n }\n}\n","/**\n * Name: Header\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\nimport Navigation from \"./Navigation\";\nimport Burger from \"./Burger\";\n\nexport default class Header extends Component {\n static settings = {};\n\n #top;\n #main;\n #burgerElement;\n #burger;\n #navigationElement;\n #navigation;\n\n #handleNavigationUpdate;\n\n constructor (element, options = {}) {\n super(element, {\n ...Header.settings,\n ...options\n });\n\n this.#top = document.getElementById('header-top');\n this.#main = document.getElementById('header-main');\n this.#burgerElement = document.getElementById('burger');\n this.#navigationElement = document.getElementById('navigation');\n\n this.#handleNavigationUpdate = this._handleNavigationUpdate.bind(this);\n }\n\n get top () {\n return this.#top;\n }\n\n get main () {\n return this.#main;\n }\n\n get burger () {\n return this.#burger;\n }\n\n get navigation () {\n return this.#navigation;\n }\n\n _handleNavigationUpdate () {\n this.fire('navigation:update', this.#navigation);\n }\n\n mount () {\n if (this.#navigationElement) {\n this.#navigation = new Navigation(this.#navigationElement);\n this.#navigation.on('update', this.#handleNavigationUpdate);\n this.#navigation.mount();\n }\n\n if (this.#burgerElement && this.#navigationElement) {\n this.#burger = new Burger(this.#burgerElement, {\n control: this.#burgerElement,\n target: this.#navigationElement,\n });\n\n if (this.#burger.isDisplayed) {\n this.#burger.mount();\n this.#navigation.mode = 'vertical';\n } else {\n this.#navigation.mode = 'horizontal';\n }\n }\n\n super.mount();\n }\n\n unmount () {\n super.unmount();\n\n if (this.#burger) {\n this.#burger.unmount();\n }\n\n if (this.#navigation) {\n this.#navigation.off('update', this.#handleNavigationUpdate);\n this.#navigation.unmount();\n }\n }\n}\n","/**\n * Name: SelectMultiple\n */\n\nimport Collapsible from \"@lunaweb/vega-reactor-js/src/patterns/Collapsible\";\n\nexport default class SelectMultiple extends Collapsible {\n\n static settings = {\n control: '.js-selectmultiple-control',\n target: '.js-selectmultiple-menu',\n label: '.js-selectmultiple-label',\n option: '.js-selectmultiple-option',\n i18n: {\n label_empty: 'Sélectionnez une ou plusieurs valeurs',\n label_count: '%selected% sur %length% %descriptor%',\n singular: 'sélectionné',\n plural: 'sélectionnés',\n hideSection: 'Masquer',\n showSection: 'Afficher',\n }\n };\n\n #label;\n #options;\n\n #handleTargetChange\n\n constructor (element, options = {}) {\n super(element, {\n ...SelectMultiple.settings,\n ...options\n });\n\n this.#label = this.element.querySelector(this.settings.label);\n this.#options = this.target.querySelectorAll(this.settings.option);\n\n this.#handleTargetChange = this._handleTargetChange.bind(this);\n }\n\n get selected () {\n return Array.from(this.#options).filter((element) => { return element.checked });\n }\n\n _handleTargetChange (e) {\n const selected = this.selected;\n let text = this.settings.i18n.label_count;\n\n if (selected.length === 0) {\n text = this.settings.i18n.label_empty;\n } else if (selected.length === 1) {\n text = text.replace('%descriptor%', this.settings.i18n.singular);\n } else {\n text = text.replace('%descriptor%', this.settings.i18n.plural);\n }\n\n text = text.replace('%selected%', selected.length);\n text = text.replace('%length%', this.#options.length);\n\n\n this.#label.innerHTML = text;\n }\n\n open () {\n super.open();\n this.target.focus();\n }\n\n mount () {\n this.target.addEventListener('change', this.#handleTargetChange);\n super.mount();\n this.#handleTargetChange();\n if (this.element.dataset.selectmultipleLabel) {\n this.target.setAttribute('aria-labelledby', this.element.dataset.selectmultipleLabel);\n }\n }\n\n unmount () {\n this.target.removeEventListener('change', this.#handleTargetChange);\n super.unmount();\n }\n}\n","/**\n * Name: Expander\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Expander extends Component {\n\n static settings = {};\n\n #limit = 10;\n #itemElements;\n #control;\n\n constructor (element, options = {}) {\n super(element, {\n ...Expander.settings,\n ...options\n });\n\n this.#limit = this.element.dataset.expanderLimit ? parseInt(this.element.dataset.expanderLimit, 10) : this.#limit;\n this.#itemElements = this.element.querySelectorAll('.js-expander-item');\n this.#control = this.element.querySelector('.js-expander-control');\n\n this.handleControlClick = this.handleControlClick.bind(this);\n }\n\n handleControlClick (e) {\n this.expand();\n }\n\n expand () {\n this.#itemElements.forEach((element, index) => {\n element.removeAttribute('hidden');\n });\n this.firstHiddenItem.focus();\n delete this.firstHiddenItem;\n this.#control.setAttribute('hidden', '');\n this.#control.removeEventListener('click', this.handleControlClick);\n }\n\n collapse () {\n this.#itemElements.forEach((element, index) => {\n element.setAttribute('tabindex', '-1');\n if (index >= this.#limit) {\n if (index === this.#limit) {\n this.firstHiddenItem = element;\n }\n element.setAttribute('hidden', '');\n }\n });\n this.#control.addEventListener('click', this.handleControlClick);\n this.#control.removeAttribute('hidden');\n }\n\n mount () {\n if (this.#itemElements.length > this.#limit) {\n this.collapse();\n }\n }\n\n unmount () {\n this.#control.removeEventListener('click', this.handleControlClick);\n this.#itemElements.forEach((item) => {\n item.removeAttribute('hidden');\n item.removeAttribute('tabindex');\n })\n this.#control.setAttribute('hidden', '');\n }\n}\n","/**\n * Name: Notice\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Notice extends Component {\n\n static settings = {};\n\n #close;\n #duration;\n #id;\n\n #handleCloseClick;\n\n constructor (element, options = {}) {\n super(element, {\n ...Notice.settings,\n ...options\n });\n\n this.#id = this.element.id;\n this.#close = this.element.querySelector('.js-notice-close');\n this.#duration = this.element.dataset.noticeDuration ? parseInt(this.element.dataset.noticeDuration, 10) * 1000 : null;\n\n this.#handleCloseClick = this._handleCloseClick.bind(this);\n }\n\n get id () {\n return this.#id;\n }\n\n get duration () {\n return this.#duration;\n }\n\n _handleCloseClick (e) {\n this.fire('close', this);\n this.unmount();\n this.#close = null;\n this.element.remove();\n }\n\n mount () {\n this.#close.addEventListener('click', this.#handleCloseClick);\n super.mount();\n }\n\n unmount () {\n this.#close.removeEventListener('click', this.#handleCloseClick);\n super.unmount();\n }\n}\n","/**\n * Name: Page\n */\n\nimport vhCheck from 'vh-check';\nimport Details from \"./Details\";\nimport Filters from \"./Filters\";\nimport Header from \"./Header\";\nimport SelectMultiple from \"./SelectMultiple\";\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\nimport Expander from './Expander';\nimport Notice from './Notice';\nimport { setCookie, getCookie } from \"../utilities/storage\";\n\nexport default class Page extends Component {\n\n static settings = {};\n\n #tempWidth = 0;\n #hasResized = true;\n #hasScrolled = true;\n #hasOverlay = false;\n #loop;\n #headerElement;\n #header;\n #noticeElements;\n #notices = [];\n #detailsElements;\n #details = [];\n #filtersElements;\n #filters = [];\n #selectmultipleElements;\n #selectmultiple = [];\n #expanderElements;\n #expanders = [];\n\n #handleResize;\n #handleScroll;\n #handleNavigationUpdate;\n #handleNoticeClose;\n\n constructor (element, options = {}) {\n super(element, {\n ...Page.settings,\n ...options\n });\n\n this.#headerElement = document.getElementById('header');\n this.#noticeElements = this.element.querySelectorAll('.js-notice');\n this.#detailsElements = this.element.querySelectorAll('.js-details');\n this.#filtersElements = this.element.querySelectorAll('.js-filters');\n this.#selectmultipleElements = this.element.querySelectorAll('.js-selectmultiple');\n this.#expanderElements = this.element.querySelectorAll('.js-expander');\n\n this.#handleResize = this._handleResize.bind(this);\n this.#handleScroll = this._handleScroll.bind(this);\n this.#handleNavigationUpdate = this._handleNavigationUpdate.bind(this);\n this.#handleNoticeClose = this._handleNoticeClose.bind(this);\n }\n\n get width () {\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n }\n\n _handleResize (e) {\n this.#hasResized = true;\n }\n\n _handleScroll (e) {\n this.#hasScrolled = true;\n }\n\n _handleNavigationUpdate (navigation) {\n if (navigation.currentItem && !this.#hasOverlay) {\n this.element.classList.add('has-overlay');\n this.#hasOverlay = true;\n } else if (!navigation.currentItem && this.#hasOverlay) {\n this.element.classList.remove('has-overlay');\n this.#hasOverlay = false;\n }\n }\n\n _handleNoticeClose (notice) {\n notice.off('close');\n setCookie(notice.id, 1, notice.duration);\n }\n\n updateResize () {\n if (this.#tempWidth !== this.width) {\n if (this.#header.burger.isDisplayed && !this.#header.burger.mounted) {\n this.#header.burger.mount();\n this.#header.navigation.mode = 'vertical';\n } else if (!this.#header.burger.isDisplayed && this.#header.burger.mounted) {\n this.#header.burger.unmount();\n this.#header.navigation.mode = 'horizontal';\n }\n\n this.#filters.forEach((filters) => {\n let canCollapse = true;\n if (filters.mode === \"vertical\") {\n canCollapse = filters.element.offsetWidth > (this.width / 2);\n } else {\n canCollapse = filters.element.offsetWidth < 960;\n }\n if (canCollapse && !filters.mounted) {\n filters.mount();\n } else if (!canCollapse && filters.mounted) {\n filters.unmount();\n }\n });\n\n this.#tempWidth = this.width;\n }\n }\n\n updateScroll () {\n const vh = vhCheck();\n document.documentElement.style.setProperty('--vh-offset', `${vh.offset}px`);\n }\n\n updateCustomProperties () {\n const navigationHeight = this.#header.navigation ? this.#header.navigation.element.offsetHeight : 0;\n const topHeight = this.#header && this.#header.top ? this.#header.top.offsetHeight : 0;\n const mainHeight = this.#header && this.#header.main ? this.#header.main.offsetHeight : 0;\n\n document.documentElement.style.setProperty('--navigation-height', `${navigationHeight}px`);\n document.documentElement.style.setProperty('--header-top-height', `${topHeight}px`);\n document.documentElement.style.setProperty('--header-main-height', `${mainHeight}px`);\n document.documentElement.style.setProperty('--header-height', `${topHeight + mainHeight}px`);\n document.documentElement.style.setProperty('--header-global-height', `${topHeight + mainHeight + navigationHeight}px`);\n }\n\n mount () {\n if (this.#headerElement) {\n this.#header = new Header(this.#headerElement);\n this.#header.on('navigation:update', this.#handleNavigationUpdate);\n this.#header.mount();\n }\n\n this.#noticeElements.forEach((noticeElement) => {\n const notice = new Notice(noticeElement);\n if(!getCookie(notice.id)) {\n notice.on('close', this.#handleNoticeClose);\n notice.mount();\n this.#notices.push(notice);\n }\n });\n\n this.#detailsElements.forEach((detailsElement) => {\n const options = detailsElement.dataset.detailsTranslations ? {\n i18n: JSON.parse(detailsElement.dataset.detailsTranslations)\n } : {};\n\n const details = new Details(detailsElement, options);\n details.mount();\n this.#details.push(details);\n });\n\n this.#filtersElements.forEach((filtersElement) => {\n const filters = new Filters(filtersElement);\n this.#filters.push(filters);\n });\n\n this.#selectmultipleElements.forEach((selectmultipleElement) => {\n const selectmultiple = new SelectMultiple(selectmultipleElement);\n selectmultiple.mount();\n this.#selectmultiple.push(selectmultiple);\n });\n\n this.#expanderElements.forEach((element) => {\n const expander = new Expander(element);\n expander.mount();\n });\n\n const loop = () => {\n let needUpdate = false;\n\n if (this.#hasResized) {\n this.updateResize();\n this.#hasResized = false;\n needUpdate = true;\n }\n\n if (this.#hasScrolled) {\n this.updateScroll();\n this.#hasScrolled = false;\n needUpdate = true;\n }\n\n if (needUpdate) {\n this.updateCustomProperties();\n needUpdate = null;\n }\n\n requestAnimationFrame(loop);\n }\n\n this.#loop = requestAnimationFrame(loop);\n\n window.addEventListener(\"resize\", this.#handleResize);\n document.addEventListener(\"scroll\", this.#handleScroll);\n\n super.mount();\n }\n\n unmount () {\n document.removeEventListener(\"scroll\", this.#handleScroll);\n window.removeEventListener(\"resize\", this.#handleResize);\n\n cancelAnimationFrame(this.#loop);\n\n this.#expanders.forEach((expander) => {\n expander.unmount();\n });\n this.#expanders = [];\n\n this.#selectmultiple.forEach((selectmultiple) => {\n selectmultiple.unmount();\n });\n this.#selectmultiple = [];\n\n this.#filters.forEach((filters) => {\n filters.unmount();\n });\n this.#filters = [];\n\n this.#details.forEach((details) => {\n details.unmount();\n });\n this.#details = [];\n\n this.#notices.forEach((notice) => {\n notice.unmount();\n });\n this.#notices = [];\n\n if (this.#header) {\n this.#header.unmount();\n }\n super.unmount();\n }\n}\n","export function setCookie(name, value, duration = false) {\n let expires = '';\n\n if (duration) {\n const date = new Date();\n date.setTime(date.getTime() + duration);\n expires = `expires=${ date.toUTCString() };`;\n }\n\n document.cookie = `${ name }=${ value };${ expires }path=/`;\n}\n\nexport function getCookie (name) {\n const start = `${ name }=`;\n const decodedCookie = decodeURIComponent(document.cookie);\n const array = decodedCookie.split(';');\n\n for(var i = 0; i < array.length; i++) {\n var cookie = array[i];\n while (cookie.charAt(0) == ' ') {\n cookie = cookie.substring(1);\n }\n if (cookie.indexOf(start) == 0) {\n return cookie.substring(start.length, cookie.length);\n }\n }\n return false;\n}\n","import browserUpdate from 'browser-update/update.npm';\nimport Page from './front/components/Page';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const pageElement = document.body;\n if (pageElement) {\n const page = new Page(pageElement);\n page.mount();\n }\n\n // See : https://github.com/browser-update/browser-update/wiki/Details-on-configuration\n browserUpdate({\n required: {\n e: -2, // Edge\n f: -2, // Firefox\n i: 12, // IE\n o: -2, // Opera\n s: -2, // Safari\n c: -2 // Chrome\n },\n insecure: true,\n api: 2024.01\n });\n});\n"],"names":["$bu_","s","this","version","vsakt","c","f","e","i","ios","samsung","o","e_a","o_a","y","v","uc","vsinsecure_below","vsdefault","a","names","x","silk","get_browser","ua","navigator","userAgent","replace","r","n","t","age_years","undefined","no_device_update","available","ignore","reason","pattern","RegExp","test","other","embedded","mobile","discontinued","pats","VV","length","match","engine","fullv","$1","parseFloat","platform","maxTouchPoints","av","available_ios","Math","round","indexOf","parseInt","exec","is_insecure","is_supported","is_latest","less","vmaj","esr","releases_per_year","engine_version","semver","vstr","Array","split","v1","v2","diff","h","max","window","screen","height","width","pr","devicePixelRatio","$bu_getBrowser","module","exports","op","b","ll","_buorgres","l","languages","language","browserLanguage","userLanguage","document","documentElement","getAttribute","llfull","toLowerCase","substr","domain","location","href","apiver","api","jsv","required_min","vs","notify","required","reminder","reminderClosed","onshow","onclick","onclose","pageurl","hostname","newwindow","hash","ignorecookie","reasons","hide_reasons","notified","bb","browser","override_ua","is_below_required","push","notify_esr","insecure","unsecure","unsupported","check_show","already_shown","cookie","setCookie","hours","Date","getTime","toGMTString","nomessage","createElement","src","jsshowurl","body","appendChild","__assign","Object","assign","arguments","p","prototype","hasOwnProperty","call","apply","createTestElement","testElement","style","cssText","insertBefore","firstChild","removeTestElement","element","removeChild","checkSizes","vhTest","windowHeight","innerHeight","vh","offsetHeight","offset","isNeeded","value","noop","computeDifference","sizes","redefineVhUnit","methods","freeze","isString","text","isFunction","defaultOptions","cssVarName","redefineVh","method","force","bind","updateOnTouch","onUpdate","getOptions","options","finalOptions","passiveSupported","eventListeners","defineProperty","get","addEventListener","removeEventListener","err","addListener","eventName","callback","passive","removeAll","forEach","config","updateCssVar","result","setProperty","formatResult","unbind","recompute","vhCheck","onWindowChange","requestAnimationFrame","factory","Component","static","mounted","settings","listeners","constructor","getNode","parameter","Element","testSelector","querySelector","fire","type","data","listener","on","handler","off","index","splice","mount","classList","add","unmount","remove","Details","super","_classPrivateFieldInitSpec","_control","writable","_content","_label","_handleControlClick","_handleContentBeforeMatch","_handleHashChange","_handleToggle","_classPrivateFieldSet","Error","_classPrivateFieldGet","isNativeDetails","rememberExpanded","sessionStorageValue","console","error","control","content","expanded","state","open","sessionStorage","getItem","tagName","setItem","toggle","additionalControl","target","focus","id","substring","convertControlToButton","getAttributeNames","reduce","acc","name","setAttribute","innerHTML","replaceWith","resetControl","removeAttribute","close","i18n","hideSection","showSection","removeItem","removeAdditionalControl","Collapsible","isPersistent","hasTransition","isHiding","handleControlClick","handleFocusout","handleKeydown","handleOutsideClick","handleTransitionEnd","_handleFocusout","_handleKeydown","_handleOutsideClick","_handleTransitionEnd","relatedTarget","contains","keyCode","refocus","hide","Filters","_controlLabel","controlLabel","mode","dataset","filtersMode","NavigationItem","_closeButton","_handleCloseClick","Navigation","_itemElements","_items","_handleNavigationItemClose","_handleNavigationItemOpen","querySelectorAll","format","navigationItem","currentItem","expandedItem","item","itemElement","Burger","isDisplayed","getComputedStyle","display","Header","_top","_main","_burgerElement","_burger","_navigationElement","_navigation","_handleNavigationUpdate","getElementById","top","main","burger","navigation","SelectMultiple","_options","_handleTargetChange","label","option","selected","from","filter","checked","label_count","label_empty","singular","plural","selectmultipleLabel","Expander","_limit","expanderLimit","expand","firstHiddenItem","collapse","Notice","_close","_duration","_id","noticeDuration","duration","Page","_tempWidth","_hasResized","_hasScrolled","_hasOverlay","_loop","_headerElement","_header","_noticeElements","_notices","_detailsElements","_details","_filtersElements","_filters","_selectmultipleElements","_selectmultiple","_expanderElements","_expanders","_handleResize","_handleScroll","_handleNoticeClose","innerWidth","clientWidth","notice","expires","date","setTime","toUTCString","updateResize","filters","canCollapse","offsetWidth","updateScroll","updateCustomProperties","navigationHeight","topHeight","mainHeight","noticeElement","start","array","decodeURIComponent","charAt","getCookie","detailsElement","detailsTranslations","JSON","parse","details","filtersElement","selectmultipleElement","selectmultiple","loop","needUpdate","cancelAnimationFrame","expander","pageElement","browserUpdate"],"mappings":"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"}