{"version":3,"file":"front.js","sources":["../../node_modules/mdn-polyfills/NodeList.prototype.forEach.js","../../sources/javascripts/front/components/toggler/Toggler.js","../../sources/javascripts/front/components/navigation/Navigation.js","../../node_modules/vh-check/dist/vh-check.js","../../sources/javascripts/front/components/header/Header.js","../../node_modules/debounce/index.js","../../sources/javascripts/front/components/header/lifecycle.js","../../node_modules/@lunaweb/vega-reactor-js/src/patterns/Component.js","../../sources/javascripts/front/components/Breadcrumbs/Breadcrumbs.js","../../sources/javascripts/front/components/Breadcrumbs/lifecycle.js","../../sources/javascripts/front/components/Details/Details.js","../../sources/javascripts/front/components/Details/lifecycle.js","../../sources/javascripts/front/components/Slider/Slider.js","../../sources/javascripts/front/components/Slider/lifecycle.js","../../sources/javascripts/front/components/Dropdown/Dropdown.js","../../sources/javascripts/front/components/Dropdown/lifecycle.js","../../sources/javascripts/front/components/dataGouv/DataGouv.js","../../sources/javascripts/front/components/filter/Filter.js","../../sources/javascripts/front/components/Filter/lifecycle.js","../../sources/javascripts/front/components/Apply/Apply.js","../../sources/javascripts/front/components/Apply/lifecycle.js","../../sources/javascripts/front/components/Form/Form.js","../../sources/javascripts/front/components/Form/lifecycle.js","../../sources/javascripts/front/components/Stickymenu/Stickymenu.js","../../sources/javascripts/front/components/Stickymenu/lifecycle.js","../../sources/javascripts/front/components/Banner/Banner.js","../../sources/javascripts/front/components/Banner/lifecycle.js","../../sources/javascripts/front.js"],"sourcesContent":["window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=function(o,t){t=t||window;for(var i=0;i {\n if (toggler.target !== e.detail.toggler.target && toggler.expanded) {\n toggler.hide();\n }\n });\n this.toggler = e.detail.toggler.element;\n this.updateBackdrop();\n this.element.dispatchEvent(new CustomEvent('navigation:update'));\n }\n\n updateBackdrop() {\n let hasTogglerExpanded = false;\n\n this.togglers.forEach((toggler) => {\n toggler.expanded ? hasTogglerExpanded = true : hasTogglerExpanded;\n })\n\n\n if(hasTogglerExpanded) {\n this.hasMegaMenu = true;\n this.header.classList.add('has-megamenu');\n } else {\n this.hasMegaMenu = false;\n this.header.classList.remove('has-megamenu');\n }\n }\n\n mount() {\n this.element.querySelectorAll('[data-navigation-toggler]').forEach((element) => {\n const target = document.getElementById(element.dataset.navigationToggler);\n const toggler = new Toggler(element, target, true);\n this.togglers.push(toggler);\n\n element.addEventListener('toggler:hide', this.handleTogglerHide);\n element.addEventListener('toggler:show', this.handleTogglerShow);\n element.addEventListener('toggler:change', this.handleTargetChange);\n\n toggler.mount();\n });\n }\n\n unmount() {\n this.hasMegaMenu = false;\n this.header.classList.remove('has-megamenu');\n\n this.togglers.forEach((toggler) => {\n toggler.element.removeEventListener('toggler:hide', this.handleTogglerHide);\n toggler.element.removeEventListener('toggler:show', this.handleTogglerShow);\n toggler.element.removeEventListener('toggler:change', this.handleTargetChange);\n toggler.unmount();\n });\n\n this.togglers = [];\n }\n}\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","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Toggler from '../toggler/Toggler';\nimport Navigation from '../navigation/Navigation';\nimport vhCheck from 'vh-check';\n\nexport default class Header {\n constructor(element) {\n this.element = element;\n this.navigationTogglers = [];\n this.height = this.element.offsetHeight;\n this.hasResized = true;\n this.tmpWidth = 0;\n this.hasScrolled = true;\n this.tmpScroll = document.documentElement.scrollTop;\n this.lastDcrollDown = document.documentElement.scrollTop;\n this.navigation = null;\n this.navigationToggler = null;\n this.burger = null;\n this.direction = 'down';\n this.isPinned = false;\n this.isSticky = false;\n this.hasNavigationActive = false;\n\n this.handleNavigationHide = this.handleNavigationHide.bind(this);\n this.handleNavigationShow = this.handleNavigationShow.bind(this);\n this.handleNavigationUpdate = this.handleNavigationUpdate.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handlePinned = this.handlePinned.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n handleNavigationHide() {\n this.element.classList.remove('has-navigation-active');\n this.hasNavigationActive = false;\n\n this.navigation.togglers.forEach((toggler) => {\n toggler.hide(true);\n });\n\n this.navigationToggler.focus();\n this.navigationToggler = null;\n this.updateNavigation();\n }\n\n handleNavigationShow(e) {\n this.navigationToggler = e.detail.toggler.element;\n this.element.classList.add('has-navigation-active');\n this.hasNavigationActive = true;\n this.updateNavigation();\n }\n\n handleNavigationUpdate() {\n this.updateNavigation();\n }\n\n handlePinned() {\n this.element.removeEventListener('transitionend', this.handlePinned);\n this.element.classList.remove('is-pinned');\n document.querySelector(\"body\").classList.remove('is-pinned');\n this.element.classList.remove('is-leaving');\n this.isPinned = false;\n }\n\n handleScroll() {\n this.hasScrolled = true;\n }\n\n handleResize() {\n this.hasResized = true;\n }\n\n calculate() {\n const vh = vhCheck();\n this.height = this.element.offsetHeight;\n let scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n\n // document.documentElement.style.setProperty('--header-height', `${this.height}px`);\n document.documentElement.style.setProperty('--vh', `${window.innerHeight/100}px`);\n }\n\n updateNavigation() {\n let isNavigationHasTogglerExpanded = false;\n\n this.navigation.togglers.forEach((toggler) => {\n if (!toggler.target.contains(toggler.element)) {\n isNavigationHasTogglerExpanded = toggler.expanded === true ? true : isNavigationHasTogglerExpanded;\n }\n });\n\n this.calculate();\n }\n\n updateResize() {\n if (this.tmpWidth !== this.element.offsetWidth) {\n this.height = this.element.offsetHeight;\n this.navigationTogglers.forEach((toggler) => {\n const isTogglable = window.getComputedStyle(this.burger).getPropertyValue('display') !== 'none';\n\n if (toggler.mounted !== isTogglable) {\n if (isTogglable) {\n toggler.mount();\n } else {\n toggler.unmount();\n this.element.classList.remove('has-navigation-active');\n this.hasNavigationActive = false;\n }\n }\n });\n\n this.tmpWidth = this.element.offsetWidt;\n this.calculate();\n }\n }\n\n updateScroll() {\n if (!this.element.classList.contains(\"c-header--small\") && !this.element.classList.contains(\"c-header--mini\")) {\n if(!this.hasNavigationActive && !this.navigation.hasMegaMenu) {\n if(document.documentElement.scrollTop > this.tmpScroll) {\n this.lastDcrollDown = document.documentElement.scrollTop;\n this.direction = 'down';\n } else {\n this.direction = 'up';\n }\n\n if (document.documentElement.scrollTop > this.height) {\n this.element.classList.add('is-sticky');\n this.isSticky = true;\n this.calculate();\n } else {\n this.element.classList.remove('is-sticky');\n this.element.classList.remove('is-pinned');\n document.querySelector(\"body\").classList.remove('is-pinned');\n this.isSticky = false;\n this.isPinned = false;\n this.calculate();\n }\n\n if(this.isSticky) {\n if (this.direction === 'up') {\n const delta = this.lastDcrollDown - document.documentElement.scrollTop;\n if(delta > 150) {\n this.element.classList.add('is-pinned');\n document.querySelector(\"body\").classList.add('is-pinned');\n this.isPinned = true;\n }\n } else {\n if(this.isPinned) {\n this.element.addEventListener('transitionend', this.handlePinned);\n this.element.classList.add('is-leaving');\n }\n }\n }\n\n this.tmpScroll = document.documentElement.scrollTop;\n }\n }\n }\n\n mount() {\n const nav = this.element.querySelector('#navigation');\n if (nav) {\n this.navigation = new Navigation(nav);\n this.navigation.element.addEventListener('navigation:update', this.handleNavigationUpdate);\n this.navigation.mount();\n }\n\n this.burger = this.element.querySelector('.js-header-burger');\n\n // pas met header height a jour pour evite le sauter\n this.height = this.element.offsetHeight;\n document.documentElement.style.setProperty('--header-height', `${this.height}px`);\n window.addEventListener('resize', function (e) {\n let headerHeight = this.document.querySelector(\".c-header\").offsetHeight;\n document.documentElement.style.setProperty('--header-height', `${headerHeight}px`);\n });\n\n this.element.querySelectorAll('[data-header-toggler=\"navigation\"]').forEach((element) => {\n const target = document.getElementById(element.dataset.headerToggler);\n const toggler = new Toggler(element, target);\n this.navigationTogglers.push(toggler);\n element.addEventListener('toggler:hide', this.handleNavigationHide);\n element.addEventListener('toggler:show', this.handleNavigationShow);\n\n if (\n window.getComputedStyle(this.burger).getPropertyValue('display') !== 'none'\n ) {\n toggler.mount();\n }\n });\n\n window.addEventListener('resize', this.handleResize);\n window.addEventListener('scroll', this.handleScroll);\n\n const loop = () => {\n if (this.hasScrolled) {\n this.updateScroll();\n this.hasScrolled = false;\n }\n if (this.hasResized) {\n this.updateResize();\n this.hasResized = false;\n }\n\n requestAnimationFrame(loop);\n }\n\n loop();\n\n this.element.classList.add('is-mounted');\n this.calculate();\n }\n\n unmount() {\n window.removeEventListener('resize', this.handleResize);\n window.removeEventListener('scroll', this.handleScroll);\n\n if(this.navigationTogglers) {\n this.navigationTogglers.forEach((toggler) => {\n toggler.element.removeEventListener('toggler:hide', this.handleNavigationHide);\n toggler.element.removeEventListener('toggler:show', this.handleNavigationShow);\n toggler.unmount();\n });\n this.navigationTogglers = [];\n }\n\n if (this.navigation) {\n this.navigation.element.removeEventListener('navigation:update', this.handleNavigationUpdate);\n this.navigation.unmount();\n this.navigation = null;\n }\n\n this.element.classList.remove('is-mounted');\n }\n}\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","import Header from './Header';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const headerElement = document.getElementById('header');\n if (headerElement) {\n const header = new Header(headerElement);\n header.mount();\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","import { debounce } from \"debounce\";\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Breadcrumbs extends Component {\n static settings = {\n isResponsive: false,\n control: '.js-breadcrumbs-control',\n target: '.js-breadcrumbs-target',\n };\n\n #control;\n #target;\n #enabled;\n #hasEnded = false;\n #handleControlClick;\n #handleWindowDebouncedResize;\n\n constructor (element, options = {}) {\n super(element, {\n ...Breadcrumbs.settings,\n ...options\n });\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(`Breadcrumbs error: A control with the '${ this.settings.control }' selector is missing.`);\n }\n\n if (!this.#target) {\n throw new Error(`Breadcrumbs error: A target with the '${ this.settings.target }' selector is missing.`);\n }\n\n if (!this.#control.getAttribute('id')) {\n throw new Error(`Breadcrumbs error: The control needs an id to work correctly.`, this.#control);\n }\n\n if (!this.#target.getAttribute('id')) {\n throw new Error(`Breadcrumbs error: The target needs an id to work correctly.`, this.#target);\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleWindowDebouncedResize = debounce(this._handleWindowDebouncedResize.bind(this), 20);\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 get expandable () {\n return getComputedStyle(this.control).display !== 'none';\n }\n\n get enabled () {\n return this.#enabled;\n }\n\n get hasEnded () {\n return this.#hasEnded;\n }\n\n get windowWidth () {\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n }\n\n _handleWindowDebouncedResize () {\n // If the window width has changed since last time\n // (it's not necessary to update breadcrumbs state when the resize is on the window height)\n if (this.tempWidth !== this.windowWidth) {\n this.update();\n\n // Update temporary with new window width\n this.tempWidth = this.windowWidth;\n }\n }\n\n _handleControlClick (e) {\n this.open();\n }\n\n open () {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#target.removeAttribute('hidden');\n\n if (this.settings.isResponsive) {\n this.unsetResponsive();\n }\n\n this.element.classList.add('has-ended');\n this.unmount();\n this.#hasEnded = true;\n this.target.focus();\n this.control.remove();\n\n this.fire('open', this);\n }\n\n update () {\n // hasEnded is at true when control has been clicked\n if (!this.hasEnded) {\n if (this.expandable && !this.#enabled) {\n this.enable();\n } else if (!this.expandable && this.#enabled) {\n this.disable();\n }\n }\n }\n\n setResponsive () {\n this.tempWidth = 0;\n window.addEventListener(\"resize\", this.#handleWindowDebouncedResize);\n\n if (!this.hasEnded) {\n if (this.expandable && !this.#enabled) {\n this.enable();\n } else if (!this.expandable && this.#enabled) {\n this.disable();\n }\n }\n\n this.fire('setResponsive', this);\n }\n\n unsetResponsive () {\n delete this.tempWidth;\n window.removeEventListener(\"resize\", this.#handleWindowDebouncedResize);\n\n this.fire('unsetResponsive', this);\n }\n\n enable () {\n this.#target.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n this.#target.setAttribute('hidden', '');\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\n this.#enabled = true;\n\n this.fire('enable', this);\n }\n\n disable () {\n this.#control.removeEventListener('click', this.#handleControlClick);\n\n this.#control.removeAttribute('aria-expanded');\n this.#control.removeAttribute('aria-controls');\n this.#target.removeAttribute('aria-labelledby');\n this.#target.removeAttribute('hidden');\n\n this.#enabled = false;\n\n this.fire('disable', this);\n }\n\n mount () {\n super.mount();\n\n if (this.settings.isResponsive && this.tempWidth === undefined) {\n this.setResponsive();\n } else {\n this.enable();\n }\n }\n\n unmount () {\n if (this.settings.isResponsive) {\n this.unsetResponsive();\n }\n\n this.disable();\n\n super.unmount();\n }\n}\n","import Breadcrumbs from './Breadcrumbs';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const breadcrumbsElements = document.querySelectorAll('.js-breadcrumbs');\n if (!breadcrumbsElements.length) {\n return;\n }\n breadcrumbsElements.forEach((element) => {\n const breadcrumbsElement = new Breadcrumbs(element, {\n isResponsive: true,\n });\n breadcrumbsElement.mount();\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 hasAdditionalControl: 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\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 addAdditionalControl () {\n const additionalControl = document.createElement('button');\n additionalControl.type = 'button';\n additionalControl.classList.add('c-details__button');\n additionalControl.setAttribute('aria-controls', this.#content.getAttribute('id'));\n\n const marker = this.#control.querySelector('.js-details-marker');\n\n additionalControl.innerHTML = `${ this.settings.i18n.hideSection } ${ marker.outerHTML }`;\n\n this.#content.appendChild(additionalControl);\n this.additionalControl = additionalControl;\n this.additionalControl.addEventListener('click', this.#handleControlClick);\n }\n\n removeAdditionalControl () {\n this.additionalControl.removeEventListener('click', this.#handleControlClick);\n this.additionalControl.remove();\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.settings.hasAdditionalControl) {\n this.addAdditionalControl();\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 if (this.element.getAttribute(\"is-opend\") == \"true\") {\n this.settings.open = \"true\";\n }\n\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 Details from './Details';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const detailsElements = document.querySelectorAll('.js-details');\n if (!detailsElements.length) {\n return;\n }\n detailsElements.forEach((element) => {\n const detailsElement = new Details(element, {\n hasAdditionalControl: false,\n });\n detailsElement.mount();\n });\n});\n","/**\n * Name: Seemore\n * Description: Collapsing section\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Slider extends Component {\n static settings = {\n };\n\n #control;\n #selectedId;\n #sliderImages;\n\n\n #handleControlClick;\n #handleControlFocus;\n\n constructor (element, options = {}) {\n super(element, {\n ...Slider.settings,\n ...options\n });\n\n this.#control = this.element;\n this.#selectedId = 1;\n this.#sliderImages = document.querySelectorAll(\".c-slider__figure\");\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleControlFocus = this._handleControlFocus.bind(this);\n }\n\n _handleControlClick (e) {\n\n this.#sliderImages.forEach(element => {\n element.style.opacity=\"0\"\n });\n\n if (this.#control.id) {\n this.#selectedId = this.#control.id;\n }\n\n this.#sliderImages[(this.#selectedId - 1)].style.opacity=\"1\"\n }\n\n _handleControlFocus (e) {\n\n if (e.target && this.#control.contains(e.target)) {\n\n this.#sliderImages.forEach(element => {\n element.style.opacity=\"0\"\n });\n\n\n if (this.#control.id) {\n this.#selectedId = this.#control.id;\n }\n\n this.#sliderImages[(this.#selectedId - 1)].style.opacity=\"1\"\n }\n }\n\n mount () {\n this.#control.addEventListener('mouseover', this.#handleControlClick);\n document.addEventListener('focusin', this.#handleControlFocus);\n super.mount();\n }\n\n unmount () {\n\n super.unmount();\n }\n}\n","import Slider from './Slider';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const sliderElements = document.querySelectorAll('.js-slider-control');\n if (!sliderElements.length) {\n return;\n }\n sliderElements.forEach((element) => {\n const sliderElement = new Slider(element, {\n hasAdditionalControl: true,\n });\n sliderElement.mount();\n });\n});\n","import Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Dropdown extends Component {\n static settings = {\n isPersistent: false,\n hasTransition: false,\n control: null,\n target: null,\n controlSelector: '.js-dropdown-control',\n targetSelector: '.js-dropdown-target',\n };\n\n #control;\n #target;\n #isHiding;\n #fieldName;\n #hiddenField;\n #handleControlClick;\n #handleItemClick;\n #handleChoose;\n #handleFocusout;\n #handleKeydown;\n #handleOutsideClick;\n #handleTransitionEnd;\n\n constructor (element, options = {}) {\n super(element, {\n ...Dropdown.settings,\n ...options\n });\n\n this.#isHiding = false;\n this.#control = this.settings.control ? this.settings.control : this.element.querySelector(this.settings.controlSelector);\n this.#target = this.settings.target ? this.settings.target : this.element.querySelector(this.settings.targetSelector);\n this.#fieldName = this.element.getAttribute('data-field-name');\n this.#hiddenField = document.querySelector('[data-field-id=\"'+this.#fieldName+'\"]');\n\n\n this.listOptions = this.element.querySelectorAll(\".c-dropdown__option\");\n\n if (!this.#control) {\n throw new Error(`Dropdown error: A control with the '${ this.settings.controlSelector }' selector is missing.`);\n }\n\n if (!this.#target) {\n throw new Error(`Dropdown error: A target with the '${ this.settings.targetSelector }' selector is missing.`);\n }\n\n if (!this.#control.getAttribute('id')) {\n throw new Error(`Dropdown error: The control needs an id to work correctly.`, this.#control);\n }\n\n if (!this.#target.getAttribute('id')) {\n throw new Error(`Dropdown error: The target needs an id to work correctly.`, this.#target);\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleChoose = this._handleChoose.bind(this);\n this.#handleItemClick = this._handleItemClick.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 _handleChoose (choice) {\n if (choice.hasAttribute(\"aria-checked\")) {\n\n this.listOptions.forEach((item) => {\n item.removeAttribute('aria-checked');\n this.#control.removeAttribute('isActive');\n })\n\n }else {\n this.listOptions.forEach((item) => {\n item.removeAttribute('aria-checked');\n this.#control.removeAttribute('isActive');\n })\n\n choice.setAttribute('aria-checked', 'true');\n // pour branche a un form\n this.#control.setAttribute('isActive', 'true');\n this.#hiddenField.value = choice.getAttribute('data-value');\n\n // pour affiche la selection au label. Pas ou access\n this.element.querySelector(\".c-dropdown__label\").innerHTML = choice.innerHTML;\n }\n }\n\n _handleItemClick (e) {\n this.#handleChoose(e.currentTarget);\n this.close(false);\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 this.#target.setAttribute('tabindex', '1');\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 this.#target.setAttribute('tabindex', '-1');\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 for (let i = 0; i < this.listOptions.length; i++) {\n const element = this.listOptions[i];\n element.addEventListener('click', this.#handleItemClick);\n }\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","\nimport Dropdown from './Dropdown';\n\nconst dropdownElements = document.querySelectorAll('.js-dropdown');\nif (dropdownElements.length) {\n dropdownElements.forEach((dropdownElement) => {\n const dropdown = new Dropdown(dropdownElement);\n dropdown.mount();\n });\n}\n","\nexport default class DataGouvSearch {\n\n constructor(element, props = {}) {\n this.element = element;\n this.input = this.element.querySelector('.js-search-input');\n this.geoInput = document.querySelector('.js-location-input');\n this.geoLatitude = document.querySelector('.js-latitude');\n this.geoLongitude = document.querySelector('.js-longitude');\n\n this.output = this.element.querySelector('.js-search-output');\n this.datalist = document.getElementById(this.input.getAttribute('list'));\n this.menu = null;\n this.live = null;\n this.tmp = this.input.value;\n this.menuOpen = false;\n\n this.handleInputFocusIn = this.handleInputFocusIn.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n }\n\n handleChange(e = null) {\n if(this.datalist) {\n const item = this.datalist.querySelector(`option[value=\"${ this.input.value }\"]`);\n this.selected = {\n label: item.dataset.label,\n lat: item.dataset.lat,\n lng: item.dataset.lng\n };\n }\n\n if(this.selected) {\n this.geoInput.value = this.selected.label;\n this.geoLatitude.value= this.selected.lat;\n this.geoLongitude.value= this.selected.lng;\n\n } else {\n }\n }\n\n handleKeyDown(e) {\n if (e.key && e.key !== 'Enter' && e.key !== 'ArrowUp' && e.key !== 'ArrowDown' && e.key !== 'Escape') {\n if(e.key === 'Tab') {\n return;\n }\n\n if(e.key === ' ' && this.selected) {\n e.preventDefault();\n this.controlMenu(e.key);\n return;\n }\n\n if (this.datalist) {\n this.clearDatalist();\n }\n\n if (this.menu) {\n this.selected = null;\n this.clearMenu();\n }\n\n if (this.input.value !== '' && this.input.value !== this.tmp && this.input.value.length >= 3) {\n this.getPlaces();\n }\n\n this.tmp = this.input.value;\n } else {\n if (this.menu) {\n e.preventDefault();\n\n if(this.results) {\n this.controlMenu(e.key);\n }\n }\n }\n }\n\n handleInputBlur(e) {\n this.hasFocus = false;\n if(this.menu) {\n this.closeMenu();\n }\n }\n\n handleInputFocusIn(e) {\n this.openMenu();\n this.hasFocus = true;\n }\n\n handleMenuItemClick(e) {\n e.preventDefault();\n this.selected = {\n label: e.target.dataset.label,\n lat: e.target.dataset.lat,\n lng: e.target.dataset.lng,\n };\n this.validateSelection();\n }\n\n handleSubmit(e) {\n e.preventDefault();\n }\n\n controlMenu(key) {\n switch(key) {\n case 'ArrowUp':\n this.navigateMenu(-1);\n break;\n case 'ArrowDown':\n this.navigateMenu(1);\n break;\n case 'Escape':\n this.closeMenu();\n break;\n case 'Enter':\n this.validateSelection();\n break;\n case ' ':\n this.validateSelection();\n break;\n default:\n break;\n }\n }\n\n validateSelection() {\n if(this.selected) {\n this.input.value = this.selected.label;\n this.handleChange();\n this.clearMenu();\n this.menuOpen = false;\n }\n }\n\n getLiveText() {\n let text = `${this.results.length} résultat${ this.results.length > 1 ? 's' : null } disponible${ this.results.length > 1 ? 's' : null }.`;\n\n if(this.selected) {\n text += ` ${this.selected.label} ${this.index} sur ${this.results.length} est selectionné.`\n }\n\n return text;\n }\n\n navigateMenu(delta) {\n let i = this.index ? this.index : 0;\n\n i = this.index + delta;\n i = Math.min(i, this.results.length);\n i = Math.max(i, 0);\n\n this.index = i;\n\n this.menu.querySelectorAll('[aria-posinset]').forEach((item) => {\n const state = i == parseInt(item.getAttribute('aria-posinset'));\n item.setAttribute('aria-selected', `${ state }`);\n\n if(state) {\n this.selected = {\n label: item.dataset.label,\n lat: item.dataset.lat,\n lng: item.dataset.lng,\n };\n }\n });\n\n this.live.innerHTML = this.getLiveText();\n }\n\n getPlaces() {\n let query = encodeURI(this.input.value);\n const now = new Date();\n const timestamp = now.getTime();\n this.lastRequest = timestamp;\n this.menu.classList.add('is-loading');\n\n fetch(`https://api-adresse.data.gouv.fr/search/?q=${query}`, {\n method: 'GET',\n cache: 'default',\n })\n .then((response) => {\n if (!response.ok || response.status !== 200) {\n throw Error(response.statusText);\n }\n\n return response.json();\n })\n .then((json) => {\n if(timestamp == this.lastRequest) {\n if(json.features?.length > 0) {\n if(this.datalist) {\n this.datalist.innerHTML = this.generateDatalist(json.features);\n } else {\n this.results = json.features;\n this.index = null;\n this.menu.classList.remove('is-loading');\n this.menu.innerHTML = this.generateMenu(json.features);\n this.live.innerHTML = this.getLiveText();\n this.items = this.menu.querySelectorAll('li[aria-selected]');\n\n if(this.items && this.items.length) {\n this.items.forEach((item) => {\n item.addEventListener('mousedown', this.handleMenuItemClick);\n });\n }\n }\n }\n }\n });\n }\n\n clearDatalist() {\n this.datalist.innerHTML = '';\n }\n\n clearMenu() {\n if(this.items && this.items.length) {\n this.items.forEach((item) => {\n item.removeEventListener('mousedown', this.handleMenuItemClick);\n });\n }\n\n this.items = null;\n this.menu.innerHTML = '';\n }\n\n closeMenu() {\n this.menu.setAttribute('hidden', '');\n }\n\n openMenu() {\n this.menu.removeAttribute('hidden');\n this.menuOpen = true;\n }\n\n generateDatalist(items) {\n let html = ``;\n\n items.forEach((item) => {\n html += ``;\n });\n\n return html;\n }\n\n generateMenu(items) {\n let html = ``;\n\n return html;\n }\n\n mount() {\n if(!this.datalist) {\n this.input.setAttribute('role', 'combobox');\n this.input.setAttribute('autocomplete', 'off');\n this.input.setAttribute('aria-autocomplete', 'list');\n this.input.setAttribute('aria-expanded', 'false');\n this.input.setAttribute('aria-controls', `${ this.element.id }-menu`);\n\n const menu = document.createElement('div');\n menu.classList.add('c-autocomplete__menu');\n menu.setAttribute('hidden', '');\n menu.id = `${ this.element.id }-menu`;\n\n this.menu = menu;\n this.input.parentNode.append(this.menu);\n\n const live = document.createElement('div');\n live.classList.add('c-autocomplete__live');\n live.id = `${ this.element.id }-live`;\n live.setAttribute('role', 'status');\n live.setAttribute('aria-atomic', 'true');\n live.setAttribute('aria-live', 'polite');\n\n this.live = live;\n this.element.prepend(this.live);\n }\n\n this.input.addEventListener('keyup', this.handleKeyDown);\n this.input.addEventListener('change', this.handleChange);\n this.input.addEventListener('blur', this.handleInputBlur);\n this.input.addEventListener('focusin', this.handleInputFocusIn);\n this.element.addEventListener('submit', this.handleSubmit);\n }\n\n unmount() {\n if(!this.datalist) {\n this.input.removeAttribute('role');\n this.input.removeAttribute('autocomplete');\n this.input.removeAttribute('aria-autocomplete');\n this.input.removeAttribute('aria-expanded');\n this.input.removeAttribute('aria-controls');\n\n this.menu.remove();\n this.menu = null;\n\n this.live.remove();\n this.live = null;\n }\n\n this.input.removeEventListener('keypress', this.handleKeyDown);\n this.input.removeEventListener('change', this.handleChange);\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport DataGouvSearch from '../dataGouv/DataGouv';\n\nexport default class Filter {\n constructor(element) {\n this.element = element;\n\n this.handelLocation = this.handelLocation.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n\n this.geoInput = document.querySelector('.js-location-input');\n this.geoButton = document.querySelector('.js-location-button');\n\n this.geoLatitude = document.querySelector('.js-latitude');\n this.geoLongitude = document.querySelector('.js-longitude');\n }\n\n mount() {\n if (\"geolocation\" in navigator) {\n this.geoButton.removeAttribute('aria-hidden');\n this.geoButton.addEventListener('click', this.handelLocation);\n }else {\n this.geoButton.style.display=\"none\";\n }\n\n const dataGouvSearchElement = document.getElementById('autocomplete-datagouv-search');\n if(dataGouvSearchElement) {\n this.dataGouvSearch = new DataGouvSearch(dataGouvSearchElement);\n this.dataGouvSearch.mount();\n }\n\n this.element.addEventListener('submit', this.handleSubmit);\n }\n\n handelLocation(position) {\n const success = (position) => {\n this.geoInput.value = 'Ma position actuelle';\n this.geoLatitude.value= position.coords.latitude;\n this.geoLongitude.value= position.coords.longitude;\n\n };\n\n const error = (position) => {\n this.geoInput.value = 'Impossible de retrouver la localisation';\n };\n\n navigator.geolocation.getCurrentPosition(success, error);\n }\n\n handleSubmit(e) {\n\n if (this.dataGouvSearch.menuOpen) {\n e.preventDefault();\n } else {\n }\n }\n}\n","import Filter from './Filter';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const filterElement = document.querySelector('.js-filter');\n\n if (filterElement) {\n const filter = new Filter(filterElement);\n filter.mount();\n }\n});\n","/**\n * Name: Seemore\n * Description: Collapsing section\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Apply extends Component {\n static settings = {\n };\n\n #select;\n #selectedValue;\n #folderList;\n #folderButton;\n #folderButtonLabel\n\n #handleChange;\n\n constructor (element, options = {}) {\n super(element, {\n ...Apply.settings,\n ...options\n });\n\n this.#select = this.element.querySelector(\"select\");\n this.#handleChange = this._handleChange.bind(this);\n this.#folderList = this.element.querySelectorAll(\".js-apply-folder__file\");\n this.#selectedValue = 0;\n this.#folderButton = this.element.querySelector(\".js-apply-folder__button\");\n this.#folderButtonLabel = this.element.querySelector(\".js-apply-folder__button .c-button__label\");\n }\n\n _handleChange() {\n this.#selectedValue = this.#select.value;\n\n this.#folderButton.href=this.#folderList[(this.#selectedValue - 1)].getAttribute(\"data-url\");\n\n this.#folderButtonLabel.innerText = \"Télécharger le dossier (\" + this.#folderList[(this.#selectedValue - 1)].getAttribute(\"data-subtype\") +\"-\"+ this.#folderList[(this.#selectedValue - 1)].getAttribute(\"data-size\") +\")\"\n\n }\n\n mount () {\n this.#select.addEventListener('change', this.#handleChange);\n super.mount();\n }\n\n unmount () {\n\n super.unmount();\n }\n}\n","import Apply from './Apply';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const applyElements = document.querySelectorAll('.js-apply-folder');\n if (!applyElements.length) {\n return;\n }\n applyElements.forEach((element) => {\n const applyElement = new Apply(element, {\n hasAdditionalControl: true,\n });\n applyElement.mount();\n });\n});\n","/**\n * Name: Seemore\n * Description: Collapsing section\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Form extends Component {\n static settings = {\n };\n\n #element;\n #formOptions;\n #formControler;\n #formControlerSelect\n #formControlerOptions;\n #handleChange;\n\n #showForm;\n\n constructor (element, options = {}) {\n super(element, {\n ...Form.settings,\n ...options\n });\n\n this.#element = this.element;\n this.#handleChange = this._handleChange.bind(this);\n this.#formOptions = this.element.querySelectorAll(\".js-form-form\");\n this.#formControler = this.element.querySelector(\".js-form-controler\");\n this.#formControlerSelect = this.element.querySelector(\".js-form-controler select\");\n this.#formControlerOptions = this.element.querySelectorAll(\".js-form-controler option\");\n this.#showForm = this._showForm.bind(this);\n\n }\n\n _handleChange() {\n this.#showForm();\n }\n\n _showForm() {\n this.#formOptions.forEach(element => {\n element.setAttribute(\"aria-hidden\",\"true\");\n // affiche cela qui match avec selecte value du js-form-form\n if (element.getAttribute(\"data-option\") == this.#formControlerSelect.value ) {\n element.setAttribute(\"aria-hidden\", \"false\");\n this.#element.setAttribute(\"data-value\", this.#formControlerSelect.value);\n }\n })\n }\n\n mount () {\n this.#formControler.addEventListener('change', this.#handleChange);\n super.mount();\n }\n\n unmount () {\n\n super.unmount();\n }\n}\n","import Form from './Form';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const formElements = document.querySelectorAll('.js-form');\n if (!formElements.length) {\n return;\n }\n formElements.forEach((element) => {\n const formElement = new Form(element, {\n hasAdditionalControl: true,\n });\n formElement.mount();\n });\n});\n","import 'mdn-polyfills/NodeList.prototype.forEach';\n\nexport default class Stickymenu {\n constructor(element) {\n this.element = document.querySelector(\".c-minimenu__wrapper\");\n this.sections = document.querySelectorAll(\".js-stickymenu-section\");\n this.menuItems = document.querySelectorAll(\".js-stickymenu-item\");\n this.menuLinks = document.querySelectorAll(\".js-stickymenu-item a\");\n }\n\n mount() {\n let lastKnownScrollPosition = 0;\n let ticking = false;\n let activeElementOffset;\n let activeElementWidth;\n let scrollBoxWidth = this.element.offsetWidth;\n\n document.addEventListener(\"scroll\", (event) => {\n lastKnownScrollPosition = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(() => {\n updateScroll(lastKnownScrollPosition);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n\n function updateScroll() {\n var current = \"\";\n\n var startPointElement = document.querySelector(\"body\").getBoundingClientRect();\n let startPointTop = startPointElement.top;\n\n\n let sections = document.querySelectorAll(\".js-stickymenu-section\");\n let menuItems = document.querySelectorAll(\".js-stickymenu-item\");\n\n sections.forEach((section,index) => {\n var rect = section.getBoundingClientRect();\n let sectionTop = rect.top;\n if (document.documentElement.scrollTop >= sectionTop - startPointTop + 100 - window.innerHeight) {\n current = section.getAttribute(\"id\"); }\n });\n\n menuItems.forEach((menuItem) => {\n menuItem.classList.remove(\"c-minimenu__item--active\");\n if (menuItem.getAttribute('data-id') === current) {\n menuItem.classList.add(\"c-minimenu__item--active\");\n activeElementOffset = menuItem.offsetLeft;\n activeElementWidth = menuItem.offsetWidth;\n // setTimeout(() => {\n // console.log(\"Retardée d'une seconde.\");\n // document.querySelector(\".c-minimenu__wrapper\").scrollLeft = activeElementOffset - (scrollBoxWidth*0.5) + (activeElementWidth*0.5);\n // }, 1000);\n\n }\n });\n }\n\n }\n\n unmount() {\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Stickymenu from './Stickymenu';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const stickymenus = document.querySelectorAll('.js-stickymenu');\n if (!stickymenus.length) {\n return;\n }\n\n stickymenus.forEach((element) => {\n const stickymenu = new Stickymenu(element);\n stickymenu.mount(element);\n });\n});\n","import 'mdn-polyfills/NodeList.prototype.forEach';\n\nexport default class Banner {\n constructor(element) {\n this.element = element;\n this.button = document.querySelector(\".js-banner-button\");\n\n this.handelClose = this.handelClose.bind(this);\n }\n\n mount() {\n this.button.addEventListener('click', this.handelClose );\n\n if (sessionStorage.getItem(\"banner\")) {\n if (sessionStorage.getItem(\"banner\") == \"closed\") {\n this.element.style.display=\"none\";\n }\n }\n }\n\n handelClose(event) {\n sessionStorage.setItem(\"banner\", \"closed\");\n this.element.style.display=\"none\";\n }\n\n unmount() {\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Banner from './Banner';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const banners = document.querySelectorAll('.js-banner');\n if (!banners.length) {\n return;\n }\n\n banners.forEach((element) => {\n const banner = new Banner(element);\n banner.mount(element);\n });\n});\n","import \"./front/components/header/lifecycle\";\nimport './front/components/Breadcrumbs/lifecycle';\nimport './front/components/Details/lifecycle';\nimport './front/components/Slider/lifecycle';\nimport './front/components/Dropdown/lifecycle';\nimport './front/components/Filter/lifecycle';\nimport './front/components/Apply/lifecycle';\nimport './front/components/Form/lifecycle';\nimport './front/components/Stickymenu/lifecycle';\nimport './front/components/Banner/lifecycle';\n\nlet scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n\nwindow.addEventListener('resize', function(event) {\n let scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n}, true);\n"],"names":["window","NodeList","prototype","forEach","o","t","i","this","length","call","Toggler","constructor","element","target","autoClose","autoFocus","expanded","mounted","isWaiting","lastEventType","handleClick","bind","handleKeyup","handleTarget","handleToggling","handleTransitionEnd","handleAnimationEnd","handleAutoClose","e","type","contains","hide","document","removeEventListener","preventDefault","dispatchEvent","CustomEvent","detail","toggler","toggle","key","setAttribute","classList","remove","show","addEventListener","focus","ignore","add","mount","id","tagName","unmount","removeAttribute","Navigation","togglers","hasMegaMenu","tmp","offsetWidth","header","querySelector","handleTargetChange","handleTogglerHide","handleTogglerShow","updateBackdrop","hasTogglerExpanded","querySelectorAll","getElementById","dataset","navigationToggler","push","exports","__assign","Object","assign","s","n","arguments","p","hasOwnProperty","apply","createTestElement","testElement","createElement","style","cssText","documentElement","insertBefore","firstChild","removeTestElement","removeChild","checkSizes","vhTest","windowHeight","innerHeight","vh","offsetHeight","offset","isNeeded","value","noop","computeDifference","sizes","redefineVhUnit","methods","freeze","isString","text","isFunction","f","defaultOptions","cssVarName","redefineVh","method","force","updateOnTouch","onUpdate","getOptions","options","finalOptions","passiveSupported","eventListeners","defineProperty","get","err","addListener","eventName","callback","passive","removeAll","config","updateCssVar","result","setProperty","formatResult","unbind","recompute","vhCheck","onWindowChange","requestAnimationFrame","factory","Header","navigationTogglers","height","hasResized","tmpWidth","hasScrolled","tmpScroll","scrollTop","lastDcrollDown","navigation","burger","direction","isPinned","isSticky","hasNavigationActive","handleNavigationHide","handleNavigationShow","handleNavigationUpdate","handleScroll","handlePinned","handleResize","updateNavigation","calculate","scrollbarWidth","innerWidth","body","clientWidth","isNavigationHasTogglerExpanded","updateResize","isTogglable","getComputedStyle","getPropertyValue","offsetWidt","updateScroll","nav","headerHeight","headerToggler","loop","debounce","func","wait","immediate","timeout","args","context","timestamp","later","last","Date","now","setTimeout","debounced","callNow","clear","clearTimeout","flush","headerElement","debounce_1","Component","static","settings","listeners","getNode","parameter","Element","testSelector","fire","data","listener","on","handler","off","index","indexOf","splice","Breadcrumbs","super","_classPrivateFieldInitSpec","_control","writable","_target","_enabled","_hasEnded","_handleControlClick","_handleWindowDebouncedResize","_classPrivateFieldSet","control","_classPrivateFieldGet","Error","getAttribute","expandable","display","enabled","hasEnded","windowWidth","tempWidth","update","open","isResponsive","unsetResponsive","enable","disable","setResponsive","undefined","breadcrumbsElements","Details","_content","_label","_handleContentBeforeMatch","_handleHashChange","_handleToggle","isNativeDetails","rememberExpanded","sessionStorageValue","console","error","content","state","sessionStorage","getItem","toLowerCase","setItem","additionalControl","location","hash","substring","convertControlToButton","getAttributeNames","reduce","acc","name","innerHTML","replaceWith","resetControl","addAdditionalControl","marker","i18n","hideSection","outerHTML","appendChild","removeAdditionalControl","close","showSection","hasAdditionalControl","removeItem","detailsElements","Slider","_selectedId","_sliderImages","_handleControlFocus","opacity","sliderElements","Dropdown","_isHiding","_fieldName","_hiddenField","_handleItemClick","_handleChoose","_handleFocusout","_handleKeydown","_handleOutsideClick","_handleTransitionEnd","controlSelector","targetSelector","listOptions","isHiding","choice","hasAttribute","item","currentTarget","relatedTarget","keyCode","isPersistent","refocus","hasTransition","dropdownElements","dropdownElement","DataGouvSearch","input","geoInput","geoLatitude","geoLongitude","output","datalist","menu","live","menuOpen","handleInputFocusIn","handleInputBlur","handleKeyDown","handleChange","handleSubmit","handleMenuItemClick","selected","label","lat","lng","controlMenu","clearDatalist","clearMenu","getPlaces","results","hasFocus","closeMenu","openMenu","validateSelection","navigateMenu","getLiveText","delta","Math","min","max","parseInt","query","encodeURI","getTime","lastRequest","fetch","cache","then","response","ok","status","statusText","json","_json$features","features","generateDatalist","generateMenu","items","html","properties","geometry","coordinates","parentNode","append","prepend","Filter","handelLocation","geoButton","navigator","dataGouvSearchElement","dataGouvSearch","position","geolocation","getCurrentPosition","coords","latitude","longitude","filterElement","Apply","_select","_selectedValue","_folderList","_folderButton","_folderButtonLabel","_handleChange","href","innerText","applyElements","Form","_element","_formOptions","_formControler","_formControlerSelect","_formControlerOptions","_showForm","formElements","Stickymenu","sections","menuItems","menuLinks","ticking","event","current","startPointTop","getBoundingClientRect","top","section","sectionTop","menuItem","offsetLeft","stickymenus","Banner","button","handelClose","banners"],"mappings":"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"}