{"version":3,"file":"front.js","sources":["../../node_modules/debounce/index.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","../../node_modules/@lunaweb/vega-reactor-js/src/patterns/Collapsible.js","../../sources/javascripts/front/components/Navigation/NavigationItem.js","../../sources/javascripts/front/components/Navigation/Navigation.js","../../sources/javascripts/front/components/Navigation/lifecycle.js","../../sources/javascripts/front/components/Burger/Burger.js","../../sources/javascripts/front/components/Burger/lifecycle.js","../../sources/javascripts/front/components/sticky.js","../../sources/javascripts/front/components/notebook.js","../../sources/javascripts/front/components/step.js","../../sources/javascripts/front/components/copy.js"],"sourcesContent":["/**\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","/**\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 this.#target.setAttribute('tabindex', '-1');\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 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\n// SEASON DETAIL\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const detailsElements = document.querySelectorAll('.js-season');\n if (!detailsElements.length) {\n return;\n }\n\n const detailsArray = Array.from(detailsElements);\n\n // Gestion par date\n\n let today = new Date();\n let year = today.getFullYear();\n\n // Début des saisons\n let spring = new Date(year, 2, 21); // 21 mars\n let summer = new Date(year, 5, 21); // 21 juin\n let autumn = new Date(year, 8, 21); // 21 septembre\n let winter = new Date(year, 11, 21); // 21 décembre\n\n // Gérer l'hiver qui chevauche deux années\n if (today >= winter || today < spring) { // Hiver\n detailsElements[3].classList.add('current');\n } else if (today >= spring && today < summer) { // Printemps\n detailsElements[0].classList.add('current');\n } else if (today >= summer && today < autumn) { // Été\n detailsElements[1].classList.add('current');\n } else { // Automne\n detailsElements[2].classList.add('current');\n }\n\n // Gestion du détail 'current'\n\n const allDetails = detailsArray.map((element) => {\n const detailsElement = new Details(element, {\n hasAdditionalControl: false,\n });\n detailsElement.mount();\n if (element.classList.contains('current')) {\n detailsElement.open();\n }\n return detailsElement;\n });\n\n function closeOthers(openElement) {\n allDetails.forEach(details => {\n if (details !== openElement && details.expanded) {\n details.close();\n }\n });\n }\n\n allDetails.forEach(detailsElement => {\n detailsElement.on('open', () => {\n closeOthers(detailsElement);\n });\n });\n\n});\n\n// TRANSCRIPT SEASON\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const detailsElements = document.querySelectorAll('.js-transcript');\n if (!detailsElements.length) {\n return;\n }\n\n const detailsArray = Array.from(detailsElements);\n\n const allDetails = detailsArray.map((element) => {\n const detailsElement = new Details(element, {\n hasAdditionalControl: false,\n });\n detailsElement.mount();\n return detailsElement;\n });\n\n function closeOthers(openElement) {\n allDetails.forEach(details => {\n if (details !== openElement && details.expanded) {\n details.close();\n }\n });\n }\n\n allDetails.forEach(detailsElement => {\n detailsElement.on('open', () => {\n closeOthers(detailsElement);\n });\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: 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\n _handleCloseClick (e) {\n super.close();\n document.querySelector('header').classList.remove('is-megamenu-open');\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 open () {\n super.open();\n this.target.focus();\n\n document.querySelector('header').classList.add('is-megamenu-open');\n }\n\n close () {\n super.close();\n document.querySelector('header').classList.remove('is-megamenu-open');\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\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}","import Navigation from './Navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const navigationElement = document.getElementById('navigation');\n if (!navigationElement) {\n return;\n }\n const navigation = new Navigation(navigationElement);\n navigation.mount();\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 control: '.js-burger',\n target: '.js-navigation',\n };\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 document.querySelector('header').classList.add('is-open');\n document.querySelector('.js-burger-label').innerHTML = \"Fermer\";\n document.querySelector('html').classList.add('no-scroll');\n document.querySelector('header').ontransitionend = () => {\n document.querySelector('header').scrollTop = 0;\n };\n \n if (document.body.classList.contains(\"admin-bar\")) {\n document.querySelector('header').style.top = `${50}px`;\n }\n\n this.target.focus();\n }\n\n close () {\n super.close();\n document.querySelector('header').classList.remove('is-open');\n document.querySelector('header').classList.remove('is-megamenu-open');\n document.querySelector('.js-burger-label').innerHTML = \"Menu\";\n document.querySelector('html').classList.remove('no-scroll');\n\n if (document.body.classList.contains(\"admin-bar\")) {\n document.querySelector('header').style.top = `0`;\n }\n }\n\n mount () {\n super.mount();\n this.target.classList.add('has-burger');\n this.target.setAttribute('tabindex', '-1');\n\n window.addEventListener('resize', function() {\n const megamenu = document.querySelector('.is-megamenu-open');\n const noscroll = document.querySelector('.no-scroll');\n if (megamenu && megamenu.classList.contains('is-megamenu-open')) {\n megamenu.classList.remove('is-megamenu-open');\n }\n if (noscroll) {\n noscroll.classList.remove('no-scroll');\n }\n });\n \n\n window.addEventListener('resize', function() {\n const megamenu = document.querySelector('.is-megamenu-open');\n const noscroll = document.querySelector('.no-scroll');\n if (megamenu && megamenu.classList.contains('is-megamenu-open')) {\n megamenu.classList.remove('is-megamenu-open');\n }\n if (noscroll) {\n noscroll.classList.remove('no-scroll');\n }\n });\n \n }\n\n unmount () {\n super.unmount();\n this.target.classList.remove('has-burger');\n this.target.removeAttribute('tabindex');\n }\n}","import Burger from './Burger';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n\n // init burger \n const burgerElement = document.getElementById('burger');\n if (!burgerElement) {\n return;\n }\n \n const burger = new Burger(burgerElement, {\n control: burgerElement,\n target: document.getElementById('navigation'),\n });\n\n // Check Windows width\n\n function checkWindowsWidth() {\n if (window.innerWidth <= 1234) {\n burger.mount();\n } else {\n burger.unmount();\n }\n }\n\n checkWindowsWidth();\n\n window.onresize = function(event) {\n checkWindowsWidth();\n document.querySelector('header').classList.remove('is-open');\n }\n\n});\n\n \n","document.addEventListener(\"DOMContentLoaded\", () => {\n // Variable\n const $html = document.documentElement;\n const $body = document.querySelector(\"body\");\n const $header = document.querySelector(\".js-header\");\n const $toggle = document.querySelector(\".js-header-toggle\");\n const $main = document.querySelector(\".js-main\");\n \n const is_admin = $body.classList.contains(\"admin-bar\");\n \n if ($header) {\n // Fonction\n \n let lastScrollTop = 0;\n let scrollingUp = false;\n let lastScrollPos = 0;\n let ticking = false;\n \n function headerState(currentScrollTop) {\n if (scrollingUp) {\n $header.classList.remove(\"header-hidden\");\n if (is_admin && $header) {\n $header.style.top = `${50}px`;\n }\n } else {\n $header.classList.add(\"header-hidden\");\n if (is_admin && $header) {\n $header.style.top = `${0}`;\n }\n }\n \n lastScrollTop = currentScrollTop;\n }\n \n function handleScroll() {\n let scrollPos = window.pageYOffset || document.documentElement.scrollTop;\n \n if (scrollPos >= 140) {\n if (scrollPos >= lastScrollPos) {\n scrollingUp = false;\n } else {\n scrollingUp = true;\n }\n \n headerState(scrollPos);\n lastScrollPos = scrollPos <= 0 ? 0 : scrollPos;\n }\n \n ticking = false;\n }\n \n function requestTick() {\n window.requestAnimationFrame(handleScroll);\n ticking = true;\n }\n \n window.addEventListener(\"scroll\", function () {\n if (!ticking) {\n requestTick();\n }\n });\n \n // vérifier si le header est revenu à sa place\n \n let isSticky = false;\n let isTop = true;\n \n function checkScroll() {\n let scrollPosition = window.pageYOffset || document.documentElement.scrollTop;\n \n if (scrollPosition > 200 && !isSticky) {\n $header.classList.remove(\"top\");\n $header.classList.add(\"sticky\");\n isSticky = true;\n isTop = false;\n } else if (scrollPosition < 140 && !isTop) {\n $header.classList.add(\"top\");\n $header.classList.remove(\"sticky\");\n isTop = true;\n isSticky = false;\n if (is_admin && $header) {\n $header.style.top = `${0}px`;\n }\n }\n \n requestAnimationFrame(checkScroll);\n }\n \n checkScroll();\n }\n \n });\n ","document.addEventListener(\"DOMContentLoaded\", () => {\n\n // // Button animation\n\n let notebooks = document.querySelectorAll('.js-notebook');\n\n if (notebooks.length > 0) { \n notebooks.forEach(notebook => {\n let button = notebook.querySelector('.js-gateway-btn');\n let back = notebook.querySelector('.js-gateway-back');\n let editionBtn = notebook.querySelector('.js-edition-btn');\n let closeBtn = notebook.querySelector('.js-close-btn');\n let rowForm = notebook.querySelectorAll('.js-notebook-row');\n let removeButton = notebook.querySelector('.js-remove-result');\n let results = notebook.querySelector('.js-results');\n \n if (editionBtn) { \n editionBtn.addEventListener('click', () => {\n notebook.classList.add('open');\n\n if (results) {\n results.classList.add('none');\n }\n });\n }\n\n if (closeBtn) {\n closeBtn.addEventListener('click', () => {\n notebook.classList.remove('open');\n\n\n if (results) {\n results.classList.remove('none');\n }\n });\n }\n\n if (button) {\n button.addEventListener('click', () => {\n notebook.classList.add('is-add');\n back.focus();\n });\n }\n\n if (back) {\n back.addEventListener('click', () => {\n notebook.classList.remove('is-add');\n button.focus();\n });\n }\n\n if (removeButton) {\n removeButton.addEventListener('click', () => {\n notebook.classList.add('is-remove');\n notebook.ontransitionend = () => {\n notebook.remove();\n };\n });\n }\n\n ///////\n\n let addRowButton = notebook.querySelector('.js-row-add');\n let rowContainer = notebook.querySelector('.js-rows-container');\n let rowScript = notebook.querySelector('.js-notebook-script');\n\n if (rowScript) {\n let rowTemplate = rowScript.innerHTML;\n let index = 1; \n \n function attachRemoveListeners() {\n const trashBtns = rowContainer.querySelectorAll('.js-trash-btn');\n trashBtns.forEach(trashBtn => {\n trashBtn.removeEventListener('click', handleTrashClick);\n trashBtn.addEventListener('click', handleTrashClick);\n });\n }\n \n function handleTrashClick(event) {\n const row = event.currentTarget.closest('.js-notebook-row');\n row.remove();\n }\n \n addRowButton.addEventListener('click', () => {\n const rows = notebook.querySelectorAll('.js-notebook-row');\n const lastRow = rows[rows.length - 1];\n let dataIndex;\n if (rows.length == 0) {\n dataIndex = 1;\n } else {\n dataIndex = lastRow.getAttribute('data-index');\n }\n dataIndex = parseInt(dataIndex, 10);\n\n let newRowHtml = rowTemplate.replace(/__name__/g, 'notebookRows[' + dataIndex + ']').replace(/__index__/g, dataIndex + 1);\n rowContainer.insertAdjacentHTML('beforeend', newRowHtml);\n \n dataIndex++;\n \n attachRemoveListeners();\n });\n \n if (rowForm) {\n rowForm.forEach(row => {\n let trashBtn = row.querySelector('.js-trash-btn');\n \n trashBtn.addEventListener('click', () => {\n row.remove()\n })\n });\n }\n }\n \n\n });\n }\n\n // Ajax\n\n function handleButtonClick(buttons, className, action) {\n buttons.forEach(function(button) {\n button.addEventListener('click', function(e) {\n let url = this.getAttribute('data-url');\n let parentNotebook = this.closest('.js-notebook');\n\n fetch(url)\n .then(response => {\n // console.log(response);\n if (response.ok) { \n return response.text(); \n } else {\n throw new Error('Réponse incorrecte.');\n }\n })\n .then(data => {\n if (parentNotebook) {\n // console.log(data);\n if (action === 'add') {\n parentNotebook.classList.add(className);\n } else if (action === 'remove') {\n parentNotebook.classList.remove(className);\n }\n }\n })\n .catch(error => {\n // console.log(error);\n if (parentNotebook) {\n parentNotebook.classList.remove(className);\n }\n });\n });\n });\n }\n\n let addButton = document.querySelectorAll('.js-add-button');\n handleButtonClick(addButton, 'is-add', 'add');\n\n let removeButton = document.querySelectorAll('.js-remove-button');\n handleButtonClick(removeButton, 'is-add', 'remove');\n\n});\n","document.addEventListener(\"DOMContentLoaded\", () => {\n const stepForm = document.querySelector(\".js-step-form\");\n let stepValidButton = document.querySelector(\".js-step-valid\");\n\n const validateForm = () => {\n const isValid = stepForm.checkValidity();\n if (isValid) {\n stepValidButton.removeAttribute('aria-disabled');\n } else {\n stepValidButton.setAttribute('aria-disabled', 'true');\n }\n };\n\n if (stepForm) {\n validateForm();\n\n stepForm.addEventListener('change', validateForm);\n }\n});\n","document.addEventListener(\"DOMContentLoaded\", () => {\n const copyButtons = document.querySelectorAll('.js-copy');\n\n if(copyButtons.length > 0) {\n copyButtons.forEach(button => {\n button.addEventListener('click', function() {\n let iconCopy = button.querySelector('.visible');\n let iconNone = button.querySelector('.none');\n\n iconCopy.classList.add('none');\n iconCopy.classList.remove('visible');\n iconNone.classList.add('visible');\n iconNone.classList.remove('none');\n\n const url = button.getAttribute('data-url');\n\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(url).catch(err => {\n console.error('Erreur lors de la copie dans le presse-papiers:', err);\n });\n } \n });\n });\n }\n});"],"names":["debounce","func","wait","immediate","timeout","args","context","timestamp","result","later","last","Date","now","setTimeout","apply","debounced","this","arguments","callNow","clear","clearTimeout","flush","debounce_1","Component","static","element","mounted","settings","listeners","constructor","options","getNode","parameter","Element","testSelector","querySelector","fire","type","data","forEach","listener","on","handler","push","off","index","indexOf","splice","mount","classList","add","unmount","remove","Breadcrumbs","super","_classPrivateFieldInitSpec","_control","writable","value","_target","_enabled","_hasEnded","_handleControlClick","_handleWindowDebouncedResize","_classPrivateFieldSet","control","target","_classPrivateFieldGet","Error","getAttribute","bind","expanded","expandable","getComputedStyle","display","enabled","hasEnded","windowWidth","window","innerWidth","document","documentElement","clientWidth","body","tempWidth","update","e","open","setAttribute","removeAttribute","isResponsive","unsetResponsive","focus","enable","disable","setResponsive","addEventListener","removeEventListener","undefined","breadcrumbsElements","querySelectorAll","length","Details","_content","_label","_handleContentBeforeMatch","_handleHashChange","_handleToggle","isNativeDetails","rememberExpanded","sessionStorageValue","console","error","content","state","sessionStorage","getItem","tagName","toLowerCase","setItem","toggle","additionalControl","id","location","hash","substring","convertControlToButton","createElement","getAttributeNames","reduce","acc","name","innerHTML","replaceWith","resetControl","addAdditionalControl","marker","i18n","hideSection","outerHTML","appendChild","removeAdditionalControl","close","showSection","hasAdditionalControl","removeItem","detailsElements","detailsArray","Array","from","today","year","getFullYear","spring","summer","autumn","allDetails","map","detailsElement","contains","openElement","details","Collapsible","isPersistent","hasTransition","isHiding","handleControlClick","handleFocusout","handleKeydown","handleOutsideClick","handleTransitionEnd","_handleFocusout","_handleKeydown","_handleOutsideClick","_handleTransitionEnd","relatedTarget","keyCode","refocus","hide","NavigationItem","_closeButton","_handleCloseClick","Navigation","_itemElements","_items","_handleNavigationItemClose","_handleNavigationItemOpen","mode","format","navigationItem","currentItem","expandedItem","item","itemElement","navigationElement","getElementById","Burger","isDisplayed","ontransitionend","scrollTop","style","top","megamenu","noscroll","burgerElement","burger","checkWindowsWidth","onresize","event","$body","$header","is_admin","scrollingUp","lastScrollPos","ticking","handleScroll","scrollPos","pageYOffset","requestAnimationFrame","isSticky","isTop","checkScroll","scrollPosition","notebooks","handleButtonClick","buttons","className","action","button","url","parentNotebook","closest","fetch","then","response","ok","text","catch","notebook","back","editionBtn","closeBtn","rowForm","removeButton","results","addRowButton","rowContainer","rowScript","rowTemplate","handleTrashClick","currentTarget","rows","lastRow","dataIndex","parseInt","newRowHtml","replace","insertAdjacentHTML","trashBtn","row","stepForm","stepValidButton","validateForm","checkValidity","copyButtons","iconCopy","iconNone","navigator","clipboard","isSecureContext","writeText","err"],"mappings":"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"}