TP_JO2024/home/dist/analytics/analytics.module.js.map
2024-03-27 17:19:37 +01:00

1 line
No EOL
307 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"analytics.module.js","sources":["../../.config/config.js","../../src/core/api.js","../../src/patch/script/patch.js","../../src/analytics/script/analytics/engine/collection.js","../../src/analytics/script/analytics/facade/opt.js","../../src/analytics/script/analytics/facade/init.js","../../src/analytics/script/analytics/cmp/tarte-au-citron-integration.js","../../src/analytics/script/analytics/cmp/consent-manager-platform.js","../../src/analytics/script/analytics/facade/push.js","../../src/analytics/script/analytics/facade/push-type.js","../../src/analytics/script/analytics/engine/renderer.js","../../src/analytics/script/analytics/engine/queue.js","../../src/analytics/script/analytics/facade/debug.js","../../src/analytics/script/analytics/collector/user/status.js","../../src/analytics/script/analytics/collector/user/type.js","../../src/analytics/script/analytics/utils/restricted.js","../../src/analytics/script/analytics/utils/normalize.js","../../src/analytics/script/analytics/utils/type-validator.js","../../src/analytics/script/analytics/collector/user/user.js","../../src/analytics/script/analytics/collector/site/environment.js","../../src/analytics/script/analytics/collector/site/site.js","../../src/analytics/script/analytics/collector/page/inventory.js","../../src/analytics/script/analytics/collector/page/page.js","../../src/analytics/script/analytics/collector/search/mehod.js","../../src/analytics/script/analytics/collector/search/search.js","../../src/analytics/script/analytics/collector/funnel/funnel.js","../../src/analytics/script/analytics/action/action-mode.js","../../src/analytics/script/analytics/action/action-status.js","../../src/analytics/script/analytics/action/action.js","../../src/analytics/script/analytics/action/actions.js","../../src/analytics/script/analytics/engine/location.js","../../src/analytics/script/analytics/engine/collector-event.js","../../src/analytics/script/integration/core/actionee-emission.js","../../src/analytics/script/analytics/engine/collector.js","../../src/analytics/script/analytics/analytics.js","../../src/core/script/api/utilities/property/complete-assign.js","../../src/analytics/index.js","../../src/analytics/script/analytics/action/type.js","../../src/analytics/script/analytics/utils/hierarchy/type.js","../../src/analytics/script/analytics/utils/hierarchy/member.js","../../src/analytics/script/analytics/utils/hierarchy/hierarchy.js","../../src/analytics/script/analytics/action/action-element.js","../../src/analytics/script/integration/core/actionee.js","../../src/analytics/script/integration/attributes/attribute-actionee.js","../../src/analytics/script/integration/attributes/attributes.js","../../src/analytics/script/integration/component/button/button-emission.js","../../src/analytics/script/integration/component/component-actionee.js","../../src/analytics/script/integration/component/accordion/accordion-selector.js","../../src/analytics/script/integration/component/accordion/id.js","../../src/analytics/script/integration/component/accordion/accordion-button-actionee.js","../../src/analytics/script/integration/component/accordion/accordion-actionee.js","../../src/analytics/script/integration/component/accordion/integrate.js","../../src/analytics/script/integration/component/alert/alert-selector.js","../../src/analytics/script/integration/component/alert/id.js","../../src/analytics/script/integration/component/alert/alert-actionee.js","../../src/analytics/script/integration/component/alert/integrate.js","../../src/analytics/script/integration/component/breadcrumb/breadcrumb-selector.js","../../src/analytics/script/integration/component/breadcrumb/id.js","../../src/analytics/script/integration/component/breadcrumb/breadcrumb-actionee.js","../../src/analytics/script/integration/component/breadcrumb/breadcrumb-link-actionee.js","../../src/analytics/script/integration/component/breadcrumb/integrate.js","../../src/analytics/script/integration/component/button/button-selector.js","../../src/analytics/script/integration/component/button/id.js","../../src/analytics/script/integration/component/button/button-actionee.js","../../src/analytics/script/integration/component/button/integrate.js","../../src/analytics/script/integration/component/callout/callout-selector.js","../../src/analytics/script/integration/component/callout/id.js","../../src/analytics/script/integration/component/callout/callout-actionee.js","../../src/analytics/script/integration/component/callout/integrate.js","../../src/analytics/script/integration/component/card/card-selector.js","../../src/analytics/script/integration/component/card/id.js","../../src/analytics/script/integration/component/card/card-actionee.js","../../src/analytics/script/integration/component/card/integrate.js","../../src/analytics/script/integration/component/checkbox/checkbox-selector.js","../../src/analytics/script/integration/component/checkbox/id.js","../../src/analytics/script/integration/component/checkbox/checkbox-actionee.js","../../src/analytics/script/integration/component/checkbox/integrate.js","../../src/analytics/script/integration/component/connect/connect-selector.js","../../src/analytics/script/integration/component/connect/id.js","../../src/analytics/script/integration/component/connect/connect-actionee.js","../../src/analytics/script/integration/component/connect/connect-link-actionee.js","../../src/analytics/script/integration/component/connect/integrate.js","../../src/analytics/script/integration/component/consent/consent-selector.js","../../src/analytics/script/integration/component/consent/id.js","../../src/analytics/script/integration/component/consent/consent-actionee.js","../../src/analytics/script/integration/component/consent/integrate.js","../../src/analytics/script/integration/component/download/download-selector.js","../../src/analytics/script/integration/component/download/id.js","../../src/analytics/script/integration/component/download/download-actionee.js","../../src/analytics/script/integration/component/download/integrate.js","../../src/analytics/script/integration/component/follow/follow-selector.js","../../src/analytics/script/integration/component/follow/id.js","../../src/analytics/script/integration/component/follow/follow-actionee.js","../../src/analytics/script/integration/component/follow/integrate.js","../../src/analytics/script/integration/component/footer/footer-selector.js","../../src/analytics/script/integration/component/footer/id.js","../../src/analytics/script/integration/component/footer/footer-actionee.js","../../src/analytics/script/integration/component/footer/footer-link-actionee.js","../../src/analytics/script/integration/component/footer/integrate.js","../../src/analytics/script/integration/component/header/id.js","../../src/analytics/script/integration/component/header/header-actionee.js","../../src/analytics/script/integration/component/header/header-modal-button-actionee.js","../../src/analytics/script/integration/component/header/header-modal-actionee.js","../../src/analytics/script/integration/component/header/header-selector.js","../../src/analytics/script/integration/component/header/header-tools-button-actionee.js","../../src/analytics/script/integration/component/header/header-menu-button-actionee.js","../../src/analytics/script/integration/component/header/integrate.js","../../src/analytics/script/integration/component/highlight/highlight-selector.js","../../src/analytics/script/integration/component/highlight/id.js","../../src/analytics/script/integration/component/highlight/highlight-actionee.js","../../src/analytics/script/integration/component/highlight/integrate.js","../../src/analytics/script/integration/component/link/link-selector.js","../../src/analytics/script/integration/component/link/id.js","../../src/analytics/script/integration/component/link/link-actionee.js","../../src/analytics/script/integration/component/link/integrate.js","../../src/analytics/script/integration/component/input/input-selector.js","../../src/analytics/script/integration/component/input/id.js","../../src/analytics/script/integration/component/input/input-actionee.js","../../src/analytics/script/integration/component/input/integrate.js","../../src/analytics/script/integration/component/modal/modal-selector.js","../../src/analytics/script/integration/component/modal/id.js","../../src/analytics/script/integration/component/modal/modal-actionee.js","../../src/analytics/script/integration/component/modal/integrate.js","../../src/analytics/script/integration/component/navigation/navigation-actionee.js","../../src/analytics/script/integration/component/navigation/navigation-selector.js","../../src/analytics/script/integration/component/navigation/id.js","../../src/analytics/script/integration/component/navigation/navigation-link-actionee.js","../../src/analytics/script/integration/component/navigation/navigation-section-actionee.js","../../src/analytics/script/integration/component/navigation/integrate.js","../../src/analytics/script/integration/component/pagination/pagination-selector.js","../../src/analytics/script/integration/component/pagination/id.js","../../src/analytics/script/integration/component/pagination/pagination-actionee.js","../../src/analytics/script/integration/component/pagination/pagination-link-actionee.js","../../src/analytics/script/integration/component/pagination/integrate.js","../../src/analytics/script/integration/component/quote/quote-selector.js","../../src/analytics/script/integration/component/quote/id.js","../../src/analytics/script/integration/component/quote/quote-actionee.js","../../src/analytics/script/integration/component/quote/integrate.js","../../src/analytics/script/integration/component/radio/radio-selector.js","../../src/analytics/script/integration/component/form/form-selector.js","../../src/analytics/script/integration/component/radio/id.js","../../src/analytics/script/integration/component/radio/radio-actionee.js","../../src/analytics/script/integration/component/radio/integrate.js","../../src/analytics/script/integration/component/search/search-selector.js","../../src/analytics/script/integration/component/search/id.js","../../src/analytics/script/integration/component/search/search-actionee.js","../../src/analytics/script/integration/component/search/integrate.js","../../src/analytics/script/integration/component/select/select-selector.js","../../src/analytics/script/integration/component/select/id.js","../../src/analytics/script/integration/component/select/select-actionee.js","../../src/analytics/script/integration/component/select/integrate.js","../../src/analytics/script/integration/component/share/share-selector.js","../../src/analytics/script/integration/component/share/id.js","../../src/analytics/script/integration/component/share/share-actionee.js","../../src/analytics/script/integration/component/share/integrate.js","../../src/analytics/script/integration/component/sidemenu/sidemenu-selector.js","../../src/analytics/script/integration/component/sidemenu/sidemenu-actionee.js","../../src/analytics/script/integration/component/sidemenu/id.js","../../src/analytics/script/integration/component/sidemenu/sidemenu-link-actionee.js","../../src/analytics/script/integration/component/sidemenu/sidemenu-section-actionee.js","../../src/analytics/script/integration/component/sidemenu/integrate.js","../../src/analytics/script/integration/component/summary/summary-selector.js","../../src/analytics/script/integration/component/summary/summary-actionee.js","../../src/analytics/script/integration/component/summary/id.js","../../src/analytics/script/integration/component/summary/summary-link-actionee.js","../../src/analytics/script/integration/component/summary/summary-section-actionee.js","../../src/analytics/script/integration/component/summary/integrate.js","../../src/analytics/script/integration/component/tab/id.js","../../src/analytics/script/integration/component/tab/tab-button-actionee.js","../../src/analytics/script/integration/component/tab/tab-actionee.js","../../src/analytics/script/integration/component/tab/integrate.js","../../src/analytics/script/integration/component/table/table-selector.js","../../src/analytics/script/integration/component/table/id.js","../../src/analytics/script/integration/component/table/table-actionee.js","../../src/analytics/script/integration/component/table/integrate.js","../../src/analytics/script/integration/component/tag/tag-selector.js","../../src/analytics/script/integration/component/tag/id.js","../../src/analytics/script/integration/component/tag/tag-actionee.js","../../src/analytics/script/integration/component/tag/integrate.js","../../src/analytics/script/integration/component/tile/tile-selector.js","../../src/analytics/script/integration/component/tile/id.js","../../src/analytics/script/integration/component/tile/tile-actionee.js","../../src/analytics/script/integration/component/tile/integrate.js","../../src/analytics/script/integration/component/toggle/toggle-selector.js","../../src/analytics/script/integration/component/toggle/id.js","../../src/analytics/script/integration/component/toggle/toggle-actionee.js","../../src/analytics/script/integration/component/toggle/integrate.js","../../src/analytics/script/integration/component/transcription/transcription-selector.js","../../src/analytics/script/integration/component/transcription/id.js","../../src/analytics/script/integration/component/transcription/transcription-button-actionee.js","../../src/analytics/script/integration/component/transcription/transcription-actionee.js","../../src/analytics/script/integration/component/transcription/integrate.js","../../src/analytics/script/integration/component/translate/translate-selector.js","../../src/analytics/script/integration/component/translate/id.js","../../src/analytics/script/integration/component/translate/translate-actionee.js","../../src/analytics/script/integration/component/translate/translate-button-actionee.js","../../src/analytics/script/integration/component/translate/integrate.js","../../src/analytics/script/integration/component/upload/upload-selector.js","../../src/analytics/script/integration/component/upload/id.js","../../src/analytics/script/integration/component/upload/upload-actionee.js","../../src/analytics/script/integration/component/upload/integrate.js","../../src/analytics/script/integration/component/components.js","../../src/analytics/script/integration/integration.js","../../src/analytics/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.11.2'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","const patch = {\n namespace: 'a4e35ba2a938ba9d007689dbf3f46acbb9807869'\n};\n\nexport default patch;\n","const Collection = {\n MANUAL: 'manual',\n LOAD: 'load',\n FULL: 'full',\n HASH: 'hash'\n};\n\nexport default Collection;\n","const key = '_EA_';\nconst DISABLED = `${key}disabled`;\nconst TOGGLE = `${key}toggle`;\n\nclass Opt {\n constructor () {\n this._configure();\n }\n\n _configure () {\n const scope = this;\n window[DISABLED] = () => scope.isDisabled;\n window[TOGGLE] = this.toggle.bind(this);\n }\n\n get isDisabled () {\n return localStorage.getItem(key);\n }\n\n toggle () {\n if (this.isDisabled) this.enable();\n else this.disable();\n }\n\n enable () {\n if (localStorage.getItem(key)) {\n localStorage.removeItem(key);\n }\n }\n\n disable () {\n localStorage.setItem(key, '1');\n }\n}\n\nconst opt = new Opt();\n\nexport default opt;\n","import api from '../../../api.js';\nimport opt from './opt';\n\nconst PUSH = 'EA_push';\n\nclass Init {\n constructor (domain) {\n this._domain = domain;\n this._isLoaded = false;\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n\n get id () {\n return this._id;\n }\n\n get store () {\n return this._store;\n }\n\n configure () {\n this.init();\n return this._promise;\n }\n\n init () {\n let bit = 5381;\n for (let i = this._domain.length - 1; i > 0; i--) bit = (bit * 33) ^ this._domain.charCodeAt(i);\n bit >>>= 0;\n this._id = `_EA_${bit}`;\n\n this._store = [];\n this._store.eah = this._domain;\n window[this._id] = this._store;\n\n if (!window[PUSH]) window[PUSH] = (...args) => this.store.push(args);\n\n if (opt.isDisabled) {\n api.inspector.warn('User opted out, eulerian is disabled');\n this._reject('User opted out, eulerian is disabled');\n } else this.load();\n }\n\n load () {\n const stamp = new Date() / 1E7 | 0;\n const offset = stamp % 26;\n const key = String.fromCharCode(97 + offset, 122 - offset, 65 + offset) + (stamp % 1E3);\n this._script = document.createElement('script');\n this._script.ea = this.id;\n this._script.async = true;\n this._script.addEventListener('load', this.loaded.bind(this));\n this._script.addEventListener('error', this.error.bind(this));\n this._script.src = `//${this._domain}/${key}.js?2`;\n const node = document.getElementsByTagName('script')[0];\n node.parentNode.insertBefore(this._script, node);\n }\n\n error () {\n api.inspector.error('unable to load Eulerian script file. the domain declared in your configuration must match the domain provided by the Eulerian interface (tag creation)');\n this._reject('eulerian script loading error');\n }\n\n loaded () {\n if (this._isLoaded) return;\n this._isLoaded = true;\n this._resolve();\n }\n}\n\nexport { Init };\n\n/*\n(function(e, a) {\n var i = e.length,\n y = 5381,\n k = 'script',\n s = window,\n v = document,\n o = v.createElement(k);\n for (; i;) {\n i -= 1;\n y = (y * 33) ^ e.charCodeAt(i)\n }\n y = '_EA_' + (y >>>= 0);\n (function(e, a, s, y) {\n s[a] = s[a] || function() {\n (s[y] = s[y] || []).push(arguments);\n s[y].eah = e;\n };\n }(e, a, s, y));\n i = new Date / 1E7 | 0;\n o.ea = y;\n y = i % 26;\n o.async = 1;\n o.src = '//' + e + '/' + String.fromCharCode(97 + y, 122 - y, 65 + y) + (i % 1E3) + '.js?2';\n s = v.getElementsByTagName(k)[0];\n s.parentNode.insertBefore(o, s);\n})\n('mon.domainedetracking.com', 'EA_push');\n*/\n\n/*\n(function(e, a) {\n var i = e.length,\n y = 5381,\n k = 'script',\n z = '_EA_',\n zd = z + 'disabled',\n s = window,\n v = document,\n o = v.createElement(k),\n l = s.localStorage;\n for (; i;) {\n i -= 1;\n y = (y * 33) ^ e.charCodeAt(i)\n }\n y = z + (y >>>= 0);\n (function(e, a, s, y, z, zd, l) {\n s[a] = s[a] || function() {\n (s[y] = s[y] || []).push(arguments);\n s[y].eah = e;\n };\n s[zd] = function() {\n return l.getItem(z);\n };\n s[z + 'toggle'] = function() {\n (s[zd]()) ? l.removeItem(z): l.setItem(z, 1);\n }\n }(e, a, s, y, z, zd, l));\n if (!s[zd]()) {\n i = new Date / 1E7 | 0;\n o.ea = y;\n y = i % 26;\n o.async = 1;\n o.src = '//' + e + '/' + String.fromCharCode(97 + y, 122 - y, 65 + y) + (i % 1E3) + '.js?2';\n s = v.getElementsByTagName(k)[0];\n s.parentNode.insertBefore(o, s);\n }\n})('mon.domainedetracking.com', 'EA_push');\n*/\n","import api from '../../../api.js';\n\nconst State = {\n UNKNOWN: -1,\n CONFIGURING: 0,\n CONFIGURED: 1,\n INITIATED: 2,\n READY: 3\n};\n\nclass TarteAuCitronIntegration {\n constructor (config) {\n this._config = config;\n this._state = State.UNKNOWN;\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n\n configure () {\n if (this._state >= State.CONFIGURED) return this._promise;\n if (this._state === State.UNKNOWN) {\n api.inspector.info('analytics configures tarteaucitron');\n this._state = State.CONFIGURING;\n }\n\n const tarteaucitron = window.tarteaucitron;\n if (!tarteaucitron || !tarteaucitron.services) {\n window.requestAnimationFrame(this.configure.bind(this));\n return;\n }\n\n this._state = State.CONFIGURED;\n const init = this.init.bind(this);\n\n const data = {\n key: 'eulerian',\n type: 'analytic',\n name: 'Eulerian Analytics',\n needConsent: true,\n cookies: ['etuix'],\n uri: 'https://eulerian.com/vie-privee',\n js: init,\n fallback: () => { tarteaucitron.services.eulerian.js(); }\n };\n\n tarteaucitron.services.eulerian = data;\n if (!tarteaucitron.job) tarteaucitron.job = [];\n tarteaucitron.job.push('eulerian');\n\n return this._promise;\n }\n\n init () {\n if (this._state >= State.INITIATED) return;\n this._state = State.INITIATED;\n window.__eaGenericCmpApi = this.integrate.bind(this);\n const update = this.update.bind(this);\n window.addEventListener('tac.close_alert', update);\n window.addEventListener('tac.close_panel', update);\n }\n\n integrate (cmpApi) {\n if (this._state >= State.READY) return;\n this._state = State.READY;\n this._cmpApi = cmpApi;\n\n api.inspector.info('analytics has integrated tarteaucitron');\n\n this._resolve();\n this.update();\n }\n\n update () {\n if (this._state < State.READY) return;\n this._cmpApi('tac', window.tarteaucitron, 1);\n }\n}\n\nexport { TarteAuCitronIntegration };\n","import { TarteAuCitronIntegration } from './tarte-au-citron-integration';\n\nclass ConsentManagerPlatform {\n constructor (config) {\n this._config = config;\n\n if (config) {\n switch (config.id) {\n case 'tarteaucitron':\n this.integrateTarteAuCitron();\n break;\n }\n }\n }\n\n integrateTarteAuCitron () {\n this._tac = new TarteAuCitronIntegration(this._config);\n return this._tac.configure();\n }\n\n optin () {\n\n }\n}\n\nexport { ConsentManagerPlatform };\n","import api from '../../../api.js';\n\nconst push = (type, layer) => {\n if (typeof window.EA_push !== 'function') {\n api.inspector.warn('Analytics datalayer not sent, Eulerian API isn\\'t yet avalaible');\n return;\n }\n\n api.inspector.info('analytics', type, layer);\n\n window.EA_push(type, layer);\n};\n\nexport default push;\n","const PushType = {\n COLLECTOR: 'collector',\n ACTION: 'action',\n ACTION_PARAMETER: 'actionparam'\n};\n\nexport default PushType;\n","class Renderer {\n constructor () {\n this._renderables = [];\n this._rendering = this.render.bind(this);\n requestAnimationFrame(this._rendering);\n }\n\n add (renderable) {\n const index = this._renderables.indexOf(renderable);\n if (index === -1) this._renderables.push(renderable);\n }\n\n remove (renderable) {\n const index = this._renderables.indexOf(renderable);\n if (index > -1) this._renderables.splice(index, 1);\n }\n\n render () {\n this._renderables.forEach(renderable => renderable.render());\n requestAnimationFrame(this._rendering);\n }\n}\n\nconst renderer = new Renderer();\n\nexport default renderer;\n","\nimport PushType from '../facade/push-type.js';\nimport push from '../facade/push.js';\nimport renderer from './renderer';\nimport api from '../../../api';\n\nconst SLICE = 80;\n\nclass Queue {\n constructor () {\n this._startingActions = [];\n this._endingActions = [];\n this._handlingVisibilityChange = this._handleVisibilityChange.bind(this);\n this._handlingEnd = this._handleEnd.bind(this);\n this._isStarted = false;\n this._isListening = false;\n this.reset();\n }\n\n setCollector (collector) {\n this._collector = collector;\n }\n\n reset (ending = false) {\n this._type = PushType.ACTION;\n if (!ending) this._startingActions.length = 0;\n this._endingActions.length = 0;\n this._count = 0;\n this._delay = -1;\n this._isRequested = false;\n this._unlisten();\n }\n\n start () {\n if (this._isStarted) return;\n this._isStarted = true;\n renderer.add(this);\n }\n\n collect () {\n this._type = PushType.COLLECTOR;\n this._request();\n }\n\n appendStartingAction (action, data) {\n if (!this._collector.isActionEnabled && !action.isForced) return;\n if (!action || this._startingActions.some(queued => queued.test(action))) {\n api.inspector.log('appendStartingAction exists or null', action);\n return;\n }\n const queued = new QueuedAction(action, data);\n this._startingActions.push(queued);\n this._request();\n }\n\n appendEndingAction (action, data) {\n if (!this._collector.isActionEnabled && !action.isForced) return;\n if (!action || this._endingActions.some(queued => queued.test(action))) {\n api.inspector.log('appendEndingAction exists or null', action);\n return;\n }\n const queued = new QueuedAction(action, data);\n this._endingActions.push(queued);\n this._request();\n }\n\n _request () {\n this._listen();\n this._isRequested = true;\n this._delay = 4;\n }\n\n _listen () {\n if (this._isListening) return;\n this._isListening = true;\n document.addEventListener('visibilitychange', this._handlingVisibilityChange);\n document.addEventListener('unload', this._handlingEnd);\n document.addEventListener('beforeunload', this._handlingEnd);\n document.addEventListener('pagehide', this._handlingEnd);\n }\n\n _unlisten () {\n if (!this._isListening) return;\n this._isListening = false;\n document.removeEventListener('visibilitychange', this._handlingVisibilityChange);\n document.removeEventListener('unload', this._handlingEnd);\n document.removeEventListener('beforeunload', this._handlingEnd);\n document.removeEventListener('pagehide', this._handlingEnd);\n }\n\n _handleVisibilityChange (e) {\n if (document.visibilityState === 'hidden') this.send();\n }\n\n _handleEnd () {\n this.send();\n }\n\n render () {\n if (this._delay <= -1) return;\n this._delay--;\n this._count++;\n switch (true) {\n case this._count > 20:\n case this._delay === 0:\n this.send();\n break;\n }\n }\n\n send (ending = false) {\n if (!this._isRequested) return;\n const actionLayers = [];\n if (!ending) actionLayers.push(...this._startingActions.map(queued => queued.start()).filter(layer => layer.length > 0));\n actionLayers.push(...this._endingActions.map(queued => queued.end()).filter(layer => layer.length > 0));\n\n const length = ((actionLayers.length / SLICE) + 1) | 0;\n const slices = [];\n for (let i = 0; i < length; i++) {\n const slice = actionLayers.slice(i * SLICE, (i + 1) * SLICE);\n slices.push(slice.flat());\n }\n\n if (this._type === PushType.COLLECTOR && this._collector.isCollecting) {\n const layer = this._collector.layer;\n if (slices.length > 0) {\n const slice = slices.splice(0, 1)[0];\n if (slice.length > 0) layer.push.apply(layer, slice);\n }\n layer.flat();\n if (layer.length > 0) push(PushType.COLLECTOR, layer);\n }\n\n if (slices.length > 0) {\n for (let i = 0; i < slices.length; i++) {\n const slice = slices[i];\n if (slice.length > 0) push(PushType.ACTION, slice);\n }\n }\n\n this.reset(ending);\n }\n}\n\nclass QueuedAction {\n constructor (action, data) {\n this._action = action;\n this._data = data;\n }\n\n test (action) {\n return this._action === action;\n }\n\n start () {\n return this._action.start(this._data);\n }\n\n end () {\n return this._action.end(this._data);\n }\n}\n\nconst queue = new Queue();\n\nexport default queue;\n","class Debug {\n get debugger () {\n return window._oEa;\n }\n\n get isActive () {\n if (!this.debugger) return false;\n return this.debugger._dbg === '1';\n }\n\n set isActive (value) {\n if (!this.debugger || this.isActive === value) return;\n this.debugger.debug(value ? 1 : 0);\n }\n}\n\nconst debug = new Debug();\n\nexport default debug;\n","const Status = {\n CONNECTED: {\n id: 'connected',\n value: 'connecté',\n isConnected: true,\n isDefault: true\n },\n ANONYMOUS: {\n id: 'anonymous',\n value: 'anonyme',\n isConnected: false,\n isDefault: true\n },\n GUEST: {\n id: 'guest',\n value: 'invité',\n isConnected: false\n }\n};\n\nexport default Status;\n","const Type = {\n INDIVIDUAL: {\n id: 'individual',\n value: 'part'\n },\n PROFESSIONNAL: {\n id: 'professionnal',\n value: 'pro'\n }\n};\n\nexport default Type;\n","/* '[\"\\'<>*$&~`|\\\\\\\\?^~]'; */\nexport default {\n '0x0022': '',\n '0x0024': '',\n '0x0026': '',\n '0x0027': '',\n '0x002a': '',\n '0x002c': '',\n '0x003c': '',\n '0x003e': '',\n '0x003f': '',\n '0x005c': '',\n '0x005e': '',\n '0x0060': '',\n '0x007c': '',\n '0x007e': ''\n};\n","// import TABLE from './unicode-table';\nimport RESTRICTED from './restricted';\n\nconst charCodeHex = (char) => {\n const code = char.charCodeAt(0).toString(16);\n return '0x0000'.slice(0, -code.length) + code;\n};\n\nconst normalize = (text) => {\n if (!text) return text;\n // text = [...text].map(char => TABLE[charCodeHex(char)] || char).join('');\n text = [...text].map(char => RESTRICTED[charCodeHex(char)] || char).join('');\n text = text.replace(/\\s+/g, ' ').replace(/\\s/g, '_');\n text = text.toLowerCase();\n return text;\n};\n\nexport default normalize;\n","import api from '../../../api';\n\nconst validateString = (value, name, allowNull = true) => {\n switch (true) {\n case typeof value === 'number':\n return `${value}`;\n\n case typeof value === 'string':\n return value;\n\n case value === undefined && allowNull:\n case value === null && allowNull:\n return '';\n }\n\n api.inspector.warn(`unexpected value '${value}' set at analytics.${name}. Expecting a String`);\n return null;\n};\n\nconst validateNumber = (value, name, allowNull = true) => {\n switch (true) {\n case !isNaN(value):\n return value;\n\n case typeof value === 'string' && !isNaN(Number(value)):\n return Number(value);\n\n case value === undefined && allowNull:\n case value === null && allowNull:\n return -1;\n }\n\n api.inspector.warn(`unexpected value '${value}' set at analytics.${name}. Expecting a Number`);\n return null;\n};\n\nconst validateBoolean = (value, name) => {\n switch (true) {\n case typeof value === 'boolean':\n return value;\n\n case typeof value === 'string' && value.toLowerCase() === 'true':\n case value === '1':\n case value === 1:\n return true;\n\n case typeof value === 'string' && value.toLowerCase() === 'false':\n case value === '0':\n case value === 0:\n return false;\n\n case value === undefined:\n case value === null:\n return value;\n }\n\n api.inspector.warn(`unexpected value '${value}' set at analytics.${name}. Expecting a Boolean`);\n return null;\n};\n\nconst validateLang = (value, name, allowNull = true) => {\n switch (true) {\n case typeof value === 'string' && /^[A-Za-z]{2}$|^[A-Za-z]{2}[-_]/.test(value):\n return value.split(/[-_]/)[0].toLowerCase();\n\n case value === undefined && allowNull:\n case value === null && allowNull:\n return '';\n }\n\n api.inspector.warn(`unexpected value '${value}' set at analytics.${name}. Expecting language as a String following ISO 639-1 format`);\n return null;\n};\n\nconst validateGeography = (value, name, allowNull = true) => {\n switch (true) {\n case typeof value === 'string':\n if (!/^FR-[A-Z0-9]{2,3}$/.test(value)) api.inspector.warn(`value '${value}' set at analytics.${name} with wrong format. Geographic location should be a String following ISO 3166-2:FR format`);\n return value;\n\n case value === undefined && allowNull:\n case value === null && allowNull:\n return '';\n }\n\n api.inspector.warn(`unexpected value '${value}' set at analytics.${name}. Expecting geographic location as a String following ISO 3166-2:FR format`);\n return null;\n};\n\nconst normaliseISODate = (date) => date.toISOString().split('T')[0];\n\nconst validateDate = (value, name, allowNull = true) => {\n switch (true) {\n case value instanceof Date:\n return normaliseISODate(value);\n\n case typeof value === 'string': {\n const date = new Date(value);\n if (date.toString() !== 'Invalid Date') return normaliseISODate(date);\n break;\n }\n\n case value === undefined && allowNull:\n case value === null && allowNull:\n return null;\n }\n\n api.inspector.warn(`unexpected value '${value}' set at analytics.${name}. Expecting a Date`);\n return null;\n};\n\nexport { validateString, validateNumber, validateBoolean, validateLang, validateGeography, validateDate };\n","import api from '../../../../api';\nimport Status from './status';\nimport Type from './type';\nimport normalize from '../../utils/normalize';\nimport { validateBoolean, validateLang, validateString } from '../../utils/type-validator';\n\nclass User {\n constructor (config) {\n this._config = config || {};\n }\n\n reset (clear = false) {\n this._isConnected = false;\n this.status = Status.ANONYMOUS;\n if (!clear && this._config.connect) this.connect(this._config.connect.uid, this._config.connect.email, this._config.connect.isNew);\n else {\n this._uid = undefined;\n this._email = undefined;\n this._isNew = false;\n }\n this.profile = clear ? undefined : this._config.profile;\n this.language = clear ? undefined : this._config.language;\n this.type = clear ? undefined : this._config.type;\n }\n\n connect (uid, email, isNew = false) {\n this._uid = validateString(uid, 'user.uid');\n if (/^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]{2,}@[a-zA-Z0-9-]{2,}\\.[a-zA-Z]{2,}$/.test(email)) api.inspector.warn('Please check analytics.user.email is properly encrypted ');\n this._email = validateString(email, 'user.email');\n this._isNew = validateBoolean(isNew);\n this._isConnected = true;\n this.status = Status.CONNECTED;\n }\n\n get uid () {\n return this._uid;\n }\n\n get email () {\n return this._email;\n }\n\n get isNew () {\n return this._isNew;\n }\n\n set status (id) {\n const stati = Object.values(Status).filter(status => status.isConnected === this._isConnected);\n this._status = stati.filter(status => status.id === id || status.value === id)[0] || stati.filter(status => status.isDefault)[0];\n }\n\n get status () {\n return this._status.id;\n }\n\n set profile (value) {\n const valid = validateString(value, 'user.profile');\n if (valid !== null) this._profile = valid;\n }\n\n get profile () {\n return this._profile.id;\n }\n\n set language (value) {\n const valid = validateLang(value, 'user.language');\n if (valid !== null) this._language = valid;\n }\n\n get language () {\n return this._language || navigator.language;\n }\n\n set type (id) {\n this._type = Object.values(Type).filter(type => type.id === id || type.value === id)[0];\n }\n\n get type () {\n return this._type.id;\n }\n\n get layer () {\n const layer = [];\n if (this.uid) layer.push('uid', normalize(this.uid));\n if (this.email) layer.push('email', normalize(this.email));\n if (this.isNew) layer.push('newcustomer', '1');\n if (this.language) layer.push('user_language', this.language);\n layer.push('user_login_status', this._status.value);\n if (this._profile) layer.push('profile', this._profile);\n if (this._type) layer.push('user_type', this._type.value);\n return layer;\n }\n}\n\nUser.Status = Status;\nUser.Type = Type;\n\nexport { User };\n","const Environment = {\n DEVELOPMENT: {\n id: 'development',\n value: 'dev'\n },\n STAGE: {\n id: 'stage',\n value: 'stage'\n },\n PRODUCTION: {\n id: 'production',\n value: 'prod'\n }\n};\n\nexport default Environment;\n","import api from '../../../../api';\nimport Environment from './environment';\nimport normalize from '../../utils/normalize';\nimport { validateGeography, validateLang, validateString } from '../../utils/type-validator';\n\nclass Site {\n constructor (config) {\n this._config = config || {};\n }\n\n reset (clear = false) {\n this.environment = clear ? Environment.DEVELOPMENT.id : this._config.environment;\n this.entity = clear ? undefined : this._config.entity;\n this.language = clear ? undefined : this._config.language;\n this.target = clear ? undefined : this._config.target;\n this.type = clear ? undefined : this._config.type;\n this.region = clear ? undefined : this._config.region;\n this.department = clear ? undefined : this._config.department;\n this.version = clear ? undefined : this._config.version;\n this._api = api.version;\n }\n\n set environment (value) {\n switch (value) {\n case Environment.PRODUCTION.id:\n case Environment.PRODUCTION.value:\n this._environment = Environment.PRODUCTION;\n break;\n\n case Environment.STAGE.id:\n case Environment.STAGE.value:\n this._environment = Environment.STAGE;\n break;\n\n case Environment.DEVELOPMENT.id:\n case Environment.DEVELOPMENT.value:\n this._environment = Environment.DEVELOPMENT;\n break;\n\n default:\n this._environment = Environment.DEVELOPMENT;\n }\n }\n\n get environment () {\n return this._environment ? this._environment.id : Environment.DEVELOPMENT.id;\n }\n\n set entity (value) {\n const valid = validateString(value, 'site.entity');\n if (valid !== null) this._entity = valid;\n }\n\n get entity () {\n return this._entity;\n }\n\n set language (value) {\n const valid = validateLang(value, 'site.language');\n if (valid !== null) this._language = valid;\n }\n\n get language () {\n return this._language || document.documentElement.lang;\n }\n\n set target (value) {\n const valid = validateString(value, 'site.target');\n if (valid !== null) this._target = valid;\n }\n\n get target () {\n return this._target;\n }\n\n set type (value) {\n const valid = validateString(value, 'site.type');\n if (valid !== null) this._type = valid;\n }\n\n get type () {\n return this._type;\n }\n\n set region (value) {\n const valid = validateGeography(value, 'site.region');\n if (valid !== null) this._region = valid;\n }\n\n get region () {\n return this._region;\n }\n\n set department (value) {\n const valid = validateGeography(value, 'site.department');\n if (valid !== null) this._department = valid;\n }\n\n get department () {\n return this._department;\n }\n\n set version (value) {\n const valid = validateString(value, 'site.version');\n if (valid !== null) this._version = valid;\n }\n\n get version () {\n return this._version;\n }\n\n get api () {\n return this._api;\n }\n\n get layer () {\n const layer = [];\n layer.push('site_environment', this._environment.value);\n if (this.entity) layer.push('site_entity', normalize(this.entity));\n else api.inspector.warn('entity is required in analytics.site');\n if (this.language) layer.push('site_language', this.language);\n if (this.target) layer.push('site_target', normalize(this.target));\n if (this.type) layer.push('site_type', normalize(this.type));\n if (this.region) layer.push('site_region', this.region);\n if (this.department) layer.push('site_department', this.department);\n if (this.version) layer.push('site_version', this.version);\n if (this.api) layer.push('api_version', this.api);\n return layer;\n }\n}\n\nSite.Environment = Environment;\n\nexport { Site };\n","import api from '../../../../api';\n\nexport const Inventory = {\n accordion: api.internals.ns.selector('accordion'),\n alert: api.internals.ns.selector('alert'),\n badge: api.internals.ns.selector('badge'),\n breadcrumb: api.internals.ns.selector('breadcrumb'),\n button: api.internals.ns.selector('btn'),\n callout: api.internals.ns.selector('callout'),\n card: api.internals.ns.selector('card'),\n checkbox: api.internals.ns.selector('checkbox-group'),\n connect: api.internals.ns.selector('connect'),\n consent: api.internals.ns.selector('consent-banner'),\n content: api.internals.ns.selector('content-media'),\n download: api.internals.ns.selector('download'),\n follow: api.internals.ns.selector('follow'),\n footer: api.internals.ns.selector('footer'),\n header: api.internals.ns.selector('header'),\n highlight: api.internals.ns.selector('highlight'),\n input: api.internals.ns.selector('input-group'),\n link: api.internals.ns.selector('link'),\n modal: api.internals.ns.selector('modal'),\n navigation: api.internals.ns.selector('nav'),\n notice: api.internals.ns.selector('notice'),\n pagination: api.internals.ns.selector('pagination'),\n quote: api.internals.ns.selector('quote'),\n radio: api.internals.ns.selector('radio-group'),\n search: api.internals.ns.selector('search-bar'),\n select: api.internals.ns.selector('select'),\n share: api.internals.ns.selector('share'),\n sidemenu: api.internals.ns.selector('sidemenu'),\n stepper: api.internals.ns.selector('stepper'),\n summary: api.internals.ns.selector('summary'),\n tab: api.internals.ns.selector('tabs'),\n table: api.internals.ns.selector('table'),\n tag: api.internals.ns.selector('tag'),\n tile: api.internals.ns.selector('tile'),\n toggle: api.internals.ns.selector('toggle'),\n tooltip: api.internals.ns.selector('tooltip'),\n transcription: api.internals.ns.selector('transcription'),\n translate: api.internals.ns.selector('translate'),\n upload: api.internals.ns.selector('upload-group')\n};\n","import api from '../../../../api';\nimport normalize from '../../utils/normalize';\nimport { validateBoolean, validateNumber, validateString, validateDate } from '../../utils/type-validator';\nimport { Inventory } from './inventory';\n\nconst CollectionState = {\n COLLECTABLE: 'collectable',\n COLLECTING: 'collecting',\n COLLECTED: 'collected'\n};\n\nclass Page {\n constructor (config) {\n this._config = config || {};\n this._state = CollectionState.COLLECTABLE;\n }\n\n reset (clear = false) {\n this.path = clear ? '' : this._config.path;\n this.referrer = clear ? '' : this._config.referrer;\n this.title = clear ? '' : this._config.title;\n this.name = clear ? '' : this._config.name;\n this.id = clear ? '' : this._config.id;\n this.author = clear ? '' : this._config.author;\n this.date = clear ? '' : this._config.date;\n this._labels = clear || !this._config.labels ? ['', '', '', '', ''] : this._config.labels;\n this._labels.length = 5;\n this._tags = clear || !this._config.tags ? [] : this._config.tags;\n this._categories = clear || !this._config.categories ? ['', '', ''] : this._config.categories;\n this.isError = !clear && this._config.isError;\n this.template = clear ? '' : this._config.template;\n this.group = clear ? '' : this._config.group;\n this.segment = clear ? '' : this._config.segment;\n this.subtemplate = clear ? '' : this._config.subtemplate;\n this.theme = clear ? '' : this._config.theme;\n this.subtheme = clear ? '' : this._config.subtheme;\n this.related = clear ? '' : this._config.related;\n this.depth = clear || isNaN(this._config.depth) ? 0 : this._config.depth;\n this.current = clear || isNaN(this._config.current) ? -1 : this._config.current;\n this.total = clear || isNaN(this._config.total) ? -1 : this._config.total;\n this._filters = clear || !this._config.filters ? [] : this._config.filters;\n }\n\n collecting () {\n if (this._state !== CollectionState.COLLECTABLE) {\n api.inspector.warn(`current path '${this.path}' was already collected`);\n return false;\n }\n this._state = CollectionState.COLLECTING;\n return true;\n }\n\n get isCollecting () {\n return this._state === CollectionState.COLLECTING;\n }\n\n set path (value) {\n const valid = validateString(value, 'page.path');\n if (valid !== null) {\n this._path = valid;\n this._state = CollectionState.COLLECTABLE;\n }\n }\n\n get path () {\n return this._path || `${document.location.pathname}${document.location.search}`;\n }\n\n set referrer (value) {\n const valid = validateString(value, 'page.referrer');\n if (valid !== null) this._referrer = valid;\n }\n\n get referrer () {\n return this._referrer;\n }\n\n set title (value) {\n const valid = validateString(value, 'page.title');\n if (valid !== null) this._title = valid;\n }\n\n get title () {\n return this._title || document.title;\n }\n\n set id (value) {\n const valid = validateString(value, 'page.id');\n if (valid !== null) this._id = valid;\n }\n\n get id () {\n return this._id;\n }\n\n set author (value) {\n const valid = validateString(value, 'page.author');\n if (valid !== null) this._author = valid;\n }\n\n get author () {\n return this._author;\n }\n\n set date (value) {\n const valid = validateDate(value, 'page.date');\n if (valid !== null) this._date = valid;\n }\n\n get date () {\n return this._date;\n }\n\n get tags () {\n return this._tags;\n }\n\n set name (value) {\n const valid = validateString(value, 'page.name');\n if (valid !== null) this._name = valid;\n }\n\n get name () {\n return this._name || this.title;\n }\n\n get labels () {\n return this._labels;\n }\n\n get categories () {\n return this._categories;\n }\n\n set isError (value) {\n const valid = validateBoolean(value, 'page.isError');\n if (valid !== null) this._isError = valid;\n }\n\n get isError () {\n return this._isError;\n }\n\n set template (value) {\n const valid = validateString(value, 'page.template');\n if (valid !== null) this._template = valid;\n }\n\n get template () {\n return this._template || 'autres';\n }\n\n set segment (value) {\n const valid = validateString(value, 'page.segment');\n if (valid !== null) this._segment = valid;\n }\n\n get segment () {\n return this._segment || this.template;\n }\n\n set group (value) {\n const valid = validateString(value, 'page.group');\n if (valid !== null) this._group = valid;\n }\n\n get group () {\n return this._group || this.template;\n }\n\n set subtemplate (value) {\n const valid = validateString(value, 'page.subtemplate');\n if (valid !== null) this._subtemplate = valid;\n }\n\n get subtemplate () {\n return this._subtemplate;\n }\n\n set theme (value) {\n const valid = validateString(value, 'page.theme');\n if (valid !== null) this._theme = valid;\n }\n\n get theme () {\n return this._theme;\n }\n\n set subtheme (value) {\n const valid = validateString(value, 'page.subtheme');\n if (valid !== null) this._subtheme = valid;\n }\n\n get subtheme () {\n return this._subtheme;\n }\n\n set related (value) {\n const valid = validateString(value, 'page.related');\n if (valid !== null) this._related = valid;\n }\n\n get related () {\n return this._related;\n }\n\n set depth (value) {\n const valid = validateNumber(value, 'page.depth');\n if (valid !== null) this._depth = valid;\n }\n\n get depth () {\n return this._depth;\n }\n\n set current (value) {\n const valid = validateNumber(value, 'page.current');\n if (valid !== null) this._current = valid;\n }\n\n get current () {\n return this._current;\n }\n\n set total (value) {\n const valid = validateNumber(value, 'page.total');\n if (valid !== null) this._total = valid;\n }\n\n get total () {\n return this._total;\n }\n\n get filters () {\n return this._filters;\n }\n\n get layer () {\n this._state = CollectionState.COLLECTED;\n const layer = [];\n if (this.path) layer.push('path', normalize(this.path));\n if (this.referrer) layer.push('referrer', normalize(this.referrer));\n if (this.title) layer.push('page_title', normalize(this.title));\n if (this.name) layer.push('page_name', normalize(this.name));\n if (this.id) layer.push('page_id', normalize(this.id));\n if (this.author) layer.push('page_author', normalize(this.author));\n if (this.date) layer.push('page_date', normalize(this.date));\n\n const components = Object.keys(Inventory).map(id => document.querySelector(Inventory[id]) !== null ? id : null).filter(id => id !== null).join(',');\n if (components) layer.push('page_components', components);\n\n const labels = this._labels.slice(0, 5);\n labels.length = 5;\n if (labels.some(label => label)) layer.push('pagelabel', labels.map(label => typeof label === 'string' ? normalize(label) : '').join(','));\n\n const tags = this._tags;\n if (tags.some(tag => tag)) layer.push('pagetag', tags.map(tag => typeof tag === 'string' ? normalize(tag) : '').join(','));\n\n this._categories.forEach((category, index) => {\n if (category) layer.push(`page_category${index + 1}`, category);\n });\n\n if (this._isError) layer.push('error', '1');\n\n layer.push('page_template', normalize(this.template));\n layer.push('pagegroup', normalize(this.group));\n layer.push('site-segment', normalize(this.segment));\n\n if (this.subtemplate) layer.push('page_subtemplate', normalize(this.subtemplate));\n if (this.theme) layer.push('page_theme', normalize(this.theme));\n if (this.subtheme) layer.push('page_subtheme', normalize(this.subtheme));\n if (this.related) layer.push('page_related', normalize(this.related));\n if (!isNaN(this.depth)) layer.push('page_depth', this.depth);\n\n if (!isNaN(this.current) && this.current > -1) {\n let pagination = `${this.current}`;\n if (!isNaN(this.total) && this.total > -1) pagination += `/${this.total}`;\n layer.push('page_pagination', pagination);\n }\n\n if (this.filters.length && this.filters.some(label => label)) {\n const filters = this.filters.map(filter => typeof filter === 'string' ? normalize(filter) : '');\n layer.push('page_filters', filters.join(','));\n }\n return layer;\n }\n}\n\nexport { Page };\n","const Method = {\n STANDARD: {\n id: 'standard',\n value: 'standard',\n isDefault: true\n },\n AUTOCOMPLETE: {\n id: 'autocomplete',\n value: 'autocompletion'\n }\n};\n\nexport default Method;\n","import normalize from '../../utils/normalize';\nimport { validateNumber, validateString } from '../../utils/type-validator';\nimport Method from './mehod';\n\nclass Search {\n constructor (config) {\n this._config = config || {};\n }\n\n reset (clear = false) {\n this.engine = clear ? undefined : this._config.engine;\n this.results = clear || isNaN(this._config.results) ? -1 : this._config.results;\n this.terms = clear ? undefined : this._config.terms;\n this.category = clear ? undefined : this._config.category;\n this.theme = clear ? undefined : this._config.theme;\n this.type = clear ? undefined : this._config.type;\n this.method = clear ? undefined : this._config.method;\n }\n\n set engine (value) {\n const valid = validateString(value, 'search.engine');\n if (valid !== null) this._engine = valid;\n }\n\n get engine () {\n return this._engine;\n }\n\n set results (value) {\n const valid = validateNumber(value, 'search.results');\n if (valid !== null) this._results = valid;\n }\n\n get results () {\n return this._results;\n }\n\n set terms (value) {\n const valid = validateString(value, 'search.terms');\n if (valid !== null) this._terms = valid;\n }\n\n get terms () {\n return this._terms;\n }\n\n set category (value) {\n const valid = validateString(value, 'search.category');\n if (valid !== null) this._category = valid;\n }\n\n get category () {\n return this._category;\n }\n\n set theme (value) {\n const valid = validateString(value, 'search.theme');\n if (valid !== null) this._theme = valid;\n }\n\n get theme () {\n return this._theme;\n }\n\n set type (value) {\n const valid = validateString(value, 'search.type');\n if (valid !== null) this._type = valid;\n this._type = value;\n }\n\n get type () {\n return this._type;\n }\n\n set method (id) {\n const methods = Object.values(Method);\n this._method = methods.filter(method => method.id === id || method.value === id)[0] || methods.filter(method => method.isDefault)[0];\n }\n\n get method () {\n return this._method;\n }\n\n get layer () {\n const layer = [];\n if (this.engine) layer.push('isearchengine', normalize(this.engine));\n if (this.results > -1) layer.push('isearchresults', this.results);\n if (this.terms) layer.push('isearchkey', 'search_terms', 'isearchdata', normalize(this.terms));\n if (this.category) layer.push('isearchkey', 'search_category', 'isearchdata', normalize(this.category));\n if (this.theme) layer.push('isearchkey', 'search_theme', 'isearchdata', normalize(this.theme));\n if (this.type) layer.push('isearchkey', 'search_type', 'isearchdata', normalize(this.type));\n if (this._method && layer.length) layer.push('isearchkey', 'search_method', 'isearchdata', this._method.value);\n return layer;\n }\n}\n\nSearch.Method = Method;\n\nexport { Search };\n","import normalize from '../../utils/normalize';\nimport { validateNumber, validateString } from '../../utils/type-validator';\n\nclass Funnel {\n constructor (config) {\n this._config = config || {};\n }\n\n reset (clear = false) {\n this.id = clear ? undefined : this._config.id;\n this.type = clear ? undefined : this._config.type;\n this.name = clear ? undefined : this._config.name;\n this.step = clear ? undefined : this._config.step;\n this.current = clear || isNaN(this._config.current) ? -1 : this._config.current;\n this.total = clear || isNaN(this._config.total) ? -1 : this._config.total;\n this.objective = clear ? undefined : this._config.objective;\n this.error = clear ? undefined : this._config.error;\n }\n\n set id (value) {\n const valid = validateString(value, 'funnel.id');\n if (valid !== null) this._id = valid;\n }\n\n get id () {\n return this._id;\n }\n\n set type (value) {\n const valid = validateString(value, 'funnel.type');\n if (valid !== null) this._type = valid;\n }\n\n get type () {\n return this._type;\n }\n\n set name (value) {\n const valid = validateString(value, 'funnel.name');\n if (valid !== null) this._name = valid;\n }\n\n get name () {\n return this._name;\n }\n\n set step (value) {\n const valid = validateString(value, 'funnel.step');\n if (valid !== null) this._step = valid;\n }\n\n get step () {\n return this._step;\n }\n\n set current (value) {\n const valid = validateNumber(value, 'funnel.current');\n if (valid !== null) this._current = valid;\n }\n\n get current () {\n return this._current;\n }\n\n set total (value) {\n const valid = validateNumber(value, 'funnel.total');\n if (valid !== null) this._total = valid;\n }\n\n get total () {\n return this._total;\n }\n\n set objective (value) {\n const valid = validateString(value, 'funnel.objective');\n if (valid !== null) this._objective = valid;\n this._objective = value;\n }\n\n get objective () {\n return this._objective;\n }\n\n set error (value) {\n const valid = validateString(value, 'funnel.error');\n if (valid !== null) this._error = valid;\n this._error = value;\n }\n\n get error () {\n return this._error;\n }\n\n get layer () {\n const layer = [];\n if (this.id) layer.push('funnel_id', normalize(this.id));\n if (this.type) layer.push('funnel_type', normalize(this.type));\n if (this.name) layer.push('funnel_name', normalize(this.name));\n if (this.step) layer.push('funnel_step_name', normalize(this.step));\n if (!isNaN(this.current) && this.current > -1) layer.push('funnel_step_number', this.current);\n if (!isNaN(this.total) && this.total > -1) layer.push('funnel_step_max', this.total);\n if (this.objective) layer.push('funnel_objective', normalize(this.objective));\n if (this.error) layer.push('funnel_error', normalize(this.error));\n return layer;\n }\n}\n\nexport { Funnel };\n","const ActionMode = {\n IN: 'in',\n OUT: 'out',\n NONE: 'none'\n};\n\nexport { ActionMode };\n","const ActionStatus = {\n UNSTARTED: {\n id: 'unstarted',\n value: -1\n },\n STARTED: {\n id: 'started',\n value: 1\n },\n SINGULAR: {\n id: 'singular',\n value: 2\n },\n ENDED: {\n id: 'ended',\n value: 3\n }\n};\n\nexport { ActionStatus };\n","import api from '../../../api.js';\nimport normalize from '../utils/normalize';\nimport { ActionMode } from './action-mode';\nimport { validateString } from '../utils/type-validator';\nimport { ActionStatus } from './action-status';\n\nconst getParametersLayer = (data) => {\n return Object.entries(data).map(([key, value]) => ['actionpname', normalize(key), 'actionpvalue', normalize(value)]).flat();\n};\n\nclass Action {\n constructor (name) {\n this._isMuted = false;\n this._isForced = false;\n this._name = name;\n this._status = ActionStatus.UNSTARTED;\n this._labels = [];\n this._parameters = {};\n this._sentData = [];\n }\n\n get isMuted () {\n return this._isMuted;\n }\n\n set isMuted (value) {\n this._isMuted = value;\n }\n\n get isForced () {\n return this._isForced;\n }\n\n set isForced (value) {\n this._isForced = value;\n }\n\n get isSingular () {\n return this._status === ActionStatus.SINGULAR;\n }\n\n get status () {\n return this._status;\n }\n\n get name () {\n return this._name;\n }\n\n get labels () {\n return this._labels;\n }\n\n get reference () {\n return this._reference;\n }\n\n get parameters () {\n return this._parameters;\n }\n\n get mode () {\n return this._mode;\n }\n\n singularize () {\n this._status = ActionStatus.SINGULAR;\n }\n\n rewind () {\n this._sentData = [];\n this._status = ActionStatus.UNSTARTED;\n }\n\n addParameter (key, value) {\n this._parameters[key] = value;\n }\n\n removeParameter (key) {\n delete this._parameters[key];\n }\n\n set reference (value) {\n const valid = validateString(value, `action ${this._name}`);\n if (valid !== null) this._reference = valid;\n }\n\n get _base () {\n return ['actionname', this._name];\n }\n\n _getLayer (data = {}) {\n if (this._isMuted) return [];\n\n if (this._mode !== ActionMode.IN) this._sentData.push(JSON.stringify(data));\n\n const layer = this._base;\n switch (this._mode) {\n case ActionMode.IN:\n case ActionMode.OUT:\n layer.push('actionmode', this._mode);\n break;\n }\n\n const labels = this._labels.slice(0, 5);\n labels.length = 5;\n if (labels.some(label => label)) layer.push('actionlabel', labels.map(label => typeof label === 'string' ? normalize(label) : '').join(','));\n\n if (this._reference) layer.push('actionref', this._reference);\n\n layer.push.apply(layer, getParametersLayer(Object.assign(this._parameters, data || {})));\n return layer;\n }\n\n start (data) {\n switch (this._status) {\n case ActionStatus.UNSTARTED:\n this._mode = ActionMode.IN;\n this._status = ActionStatus.STARTED;\n break;\n\n case ActionStatus.SINGULAR:\n this._mode = ActionMode.NONE;\n this._status = ActionStatus.ENDED;\n break;\n\n default:\n api.inspector.error(`unexpected start on action ${this._name} with status ${this._status.id}`);\n return [];\n }\n return this._getLayer(data);\n }\n\n end (data) {\n switch (this._status) {\n case ActionStatus.STARTED:\n this._mode = ActionMode.OUT;\n this._status = ActionStatus.ENDED;\n break;\n\n case ActionStatus.UNSTARTED:\n this._mode = ActionMode.NONE;\n this._status = ActionStatus.ENDED;\n break;\n\n case ActionStatus.SINGULAR:\n this._mode = ActionMode.NONE;\n this._status = ActionStatus.ENDED;\n break;\n\n case ActionStatus.ENDED:\n if (this._sentData.includes(JSON.stringify(data))) return [];\n this._mode = ActionMode.NONE;\n this._status = ActionStatus.ENDED;\n break;\n\n default:\n return [];\n }\n return this._getLayer(data);\n }\n\n resume (data) {\n if (this._isMuted) return [];\n if (this._status.value >= ActionStatus.ENDED.value) {\n api.inspector.error(`unexpected resuming on action ${this._name} with status ${this._status.id}`);\n return [];\n }\n const layer = this._base;\n if (data) layer.push.apply(layer, getParametersLayer(data));\n return layer;\n }\n}\n\nexport { Action };\n","import { ActionMode } from './action-mode';\nimport { Action } from './action';\n\nclass Actions {\n constructor () {\n this._actions = [];\n }\n\n rewind () {\n this._actions.forEach(action => action.rewind());\n }\n\n getAction (name) {\n let action = this._actions.filter(action => action.name === name)[0];\n if (!action) {\n action = new Action(name);\n this._actions.push(action);\n }\n return action;\n }\n\n hasAction (name) {\n return this._actions.some(action => action.name === name);\n }\n\n remove (action) {\n const index = this._actions.indexOf(action);\n if (index === -1) return false;\n this._actions.splice(index, 1);\n return true;\n }\n}\n\nActions.ActionMode = ActionMode;\n\nconst actions = new Actions();\nActions.instance = actions;\n\nexport default actions;\n","import renderer from './renderer';\n\nclass Location {\n constructor (onRouteChange, isListeningHash = false) {\n this._onRouteChange = onRouteChange;\n this._isListeningHash = isListeningHash;\n this._update();\n renderer.add(this);\n }\n\n _update () {\n this._pathname = document.location.pathname;\n this._search = document.location.search;\n this._hash = document.location.hash;\n this._path = `${this._pathname}${this._search}`;\n if (this._isListeningHash) this._path += this._hash;\n this._hasTitle = this._title === document.title;\n this._title = document.title;\n }\n\n render () {\n if (this._pathname !== document.location.pathname || this._search !== document.location.search) this.change();\n if (this._isListeningHash && this._hash !== document.location.hash) this.change();\n }\n\n change () {\n this._referrer = this._path;\n this._update();\n this._onRouteChange();\n }\n\n get path () {\n return this._path;\n }\n\n get hasTitle () {\n return this._hasTitle;\n }\n\n get title () {\n return this._title;\n }\n\n get referrer () {\n return this._referrer;\n }\n}\n\nexport { Location };\n","import api from '../../../api.js';\n\nconst CollectorEvent = {\n COLLECT: api.internals.ns.event('collect')\n};\n\nexport { CollectorEvent };\n","import api from '../../../api.js';\n\nexport const ActioneeEmission = {\n REWIND: api.internals.ns.emission('analytics', 'rewind')\n};\n","import Collection from './collection.js';\nimport api from '../../../api';\nimport { User } from '../collector/user/user';\nimport { Site } from '../collector/site/site';\nimport { Page } from '../collector/page/page';\nimport { Search } from '../collector/search/search';\nimport { Funnel } from '../collector/funnel/funnel';\nimport queue from './queue';\nimport renderer from './renderer';\nimport actions from '../action/actions';\nimport { Location } from './location';\nimport { CollectorEvent } from './collector-event';\nimport { ActioneeEmission } from '../../integration/core/actionee-emission';\n\nclass Collector {\n constructor (config) {\n switch (config.collection) {\n case Collection.MANUAL:\n case Collection.LOAD:\n case Collection.FULL:\n case Collection.HASH:\n this._collection = config.collection;\n break;\n\n default:\n /* deprecated start */\n if (config.mode) {\n switch (config.mode) {\n case 'manual':\n this._collection = config.collection;\n break;\n }\n }\n /* deprecated end */\n\n switch (true) {\n /* deprecated */\n case config.mode === 'manual':\n this._collection = Collection.MANUAL;\n break;\n\n case api.mode === api.Modes.ANGULAR:\n case api.mode === api.Modes.REACT:\n case api.mode === api.Modes.VUE:\n this._collection = Collection.FULL;\n break;\n\n default:\n this._collection = Collection.LOAD;\n }\n }\n\n this._isActionEnabled = config.isActionEnabled === 'false' || config.isActionEnabled;\n\n this._user = new User(config.user);\n this._site = new Site(config.site);\n this._page = new Page(config.page);\n this._search = new Search(config.search);\n this._funnel = new Funnel(config.funnel);\n\n this._delay = -1;\n queue.setCollector(this);\n }\n\n get page () {\n return this._page;\n }\n\n get user () {\n return this._user;\n }\n\n get site () {\n return this._site;\n }\n\n get search () {\n return this._search;\n }\n\n get funnel () {\n return this._funnel;\n }\n\n start () {\n const handleRouteChange = this._handleRouteChange.bind(this);\n switch (this._collection) {\n case Collection.LOAD:\n this.collect();\n break;\n\n case Collection.FULL:\n this.collect();\n this._location = new Location(handleRouteChange);\n break;\n\n case Collection.HASH:\n this.collect();\n this._location = new Location(handleRouteChange, true);\n break;\n }\n }\n\n _handleRouteChange () {\n queue.send(true);\n this._delay = 6;\n renderer.add(this);\n }\n\n render () {\n this._delay--;\n if (this._delay < 0) {\n renderer.remove(this);\n this._routeChanged();\n }\n }\n\n _routeChanged () {\n actions.rewind();\n this._page.referrer = this._location.referrer;\n if (this._location.hasTitle) this._page.title = this._location.title;\n this._page.path = this._location.path;\n const event = new CustomEvent(CollectorEvent.COLLECT);\n document.documentElement.dispatchEvent(event);\n this.collect();\n if (api.internals && api.internals.stage && api.internals.stage.root) api.internals.stage.root.descend(ActioneeEmission.REWIND);\n }\n\n reset (clear = false) {\n this._user.reset(clear);\n this._site.reset(clear);\n this._page.reset(clear);\n this._search.reset(clear);\n this._funnel.reset(clear);\n }\n\n collect () {\n if (!this.page.collecting()) return;\n queue.collect();\n }\n\n get collection () {\n return this._collection;\n }\n\n get isCollecting () {\n return this._page.isCollecting;\n }\n\n get isActionEnabled () {\n return this._isActionEnabled;\n }\n\n set isActionEnabled (value) {\n this._isActionEnabled = value;\n }\n\n get layer () {\n return [\n ...this._user.layer,\n ...this._site.layer,\n ...this._page.layer,\n ...this._search.layer,\n ...this._funnel.layer\n ];\n }\n}\n\nexport { Collector };\n","import api from '../../api.js';\nimport patch from '../../../patch/script/patch';\nimport Collection from './engine/collection';\nimport { Init } from './facade/init';\nimport { ConsentManagerPlatform } from './cmp/consent-manager-platform';\nimport push from './facade/push';\nimport PushType from './facade/push-type';\nimport queue from './engine/queue';\nimport opt from './facade/opt';\nimport debug from './facade/debug';\nimport { Collector } from './engine/collector';\n\nclass Analytics {\n constructor () {\n this._isReady = false;\n this._readiness = new Promise((resolve, reject) => {\n if (this._isReady) resolve();\n else {\n this._resolve = resolve;\n this._reject = reject;\n }\n });\n this._configure();\n }\n\n _configure () {\n switch (true) {\n case window[patch.namespace] !== undefined:\n this._config = window[patch.namespace].configuration.analytics;\n window[patch.namespace].promise.then(this._build.bind(this), () => {});\n break;\n\n case api.internals !== undefined && api.internals.configuration !== undefined && api.internals.configuration.analytics !== undefined && api.internals.configuration.analytics.domain !== undefined:\n this._config = api.internals.configuration.analytics;\n this._build();\n break;\n\n case api.analytics !== undefined && api.analytics.domain !== undefined:\n this._config = api.analytics;\n this._build();\n break;\n\n default:\n api.inspector.warn('analytics configuration is incorrect or missing (required : domain)');\n }\n }\n\n _build () {\n this._init = new Init(this._config.domain);\n this._init.configure().then(this._start.bind(this), (reason) => this._reject(reason));\n }\n\n get isReady () {\n return this._isReady;\n }\n\n get readiness () {\n return this._readiness;\n }\n\n _start () {\n if (this._isReady) return;\n\n this._cmp = new ConsentManagerPlatform(this._config.cmp);\n this._collector = new Collector(this._config);\n this._collector.reset();\n\n this._isReady = true;\n this._resolve();\n\n queue.start();\n this._collector.start();\n }\n\n get page () {\n return this._collector.page;\n }\n\n get user () {\n return this._collector.user;\n }\n\n get site () {\n return this._collector._site;\n }\n\n get search () {\n return this._collector.search;\n }\n\n get funnel () {\n return this._collector.funnel;\n }\n\n get cmp () {\n return this._cmp;\n }\n\n get opt () {\n return opt;\n }\n\n get collection () {\n return this._collector.collection;\n }\n\n get isActionEnabled () {\n return this._collector.isActionEnabled;\n }\n\n set isActionEnabled (value) {\n this._collector.isActionEnabled = value;\n }\n\n get isDebugging () {\n return debug.isActive;\n }\n\n set isDebugging (value) {\n debug.isActive = value;\n }\n\n push (type, layer) {\n push(type, layer);\n }\n\n reset (clear = false) {\n this._collector.reset();\n }\n\n collect () {\n this._collector.collect();\n }\n}\n\nconst analytics = new Analytics();\n\nanalytics.Collection = Collection;\nanalytics.PushType = PushType;\n\nexport default analytics;\n","/**\n * Copy properties from multiple sources including accessors.\n * source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#copier_des_accesseurs\n *\n * @param {object} [target] - Target object to copy into\n * @param {...objects} [sources] - Multiple objects\n * @return {object} A new object\n *\n * @example\n *\n * const obj1 = {\n * key: 'value'\n * };\n * const obj2 = {\n * get function01 () {\n * return a-value;\n * }\n * set function01 () {\n * return a-value;\n * }\n * };\n * completeAssign(obj1, obj2)\n */\nconst completeAssign = (target, ...sources) => {\n sources.forEach(source => {\n const descriptors = Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {});\n\n Object.getOwnPropertySymbols(source).forEach(sym => {\n const descriptor = Object.getOwnPropertyDescriptor(source, sym);\n if (descriptor.enumerable) {\n descriptors[sym] = descriptor;\n }\n });\n Object.defineProperties(target, descriptors);\n });\n return target;\n};\n\nexport { completeAssign };\n","import api from './api.js';\nimport analytics from './script/analytics/analytics';\nimport { completeAssign } from '../core/script/api/utilities/property/complete-assign';\n\napi.analytics = completeAssign(analytics, {});\n\nexport default api;\n","export const Type = {\n // impression\n IMPRESSION: {\n id: 'impression', // element appeared in the page\n isSingular: true,\n isBeginning: true,\n attributed: false,\n type: 'impression'\n },\n // interaction\n CLICK: {\n id: 'click', // generic click interaction\n isBeginning: true,\n attributed: true,\n type: 'interaction',\n event: 'click',\n method: 'eventListener'\n },\n INTERNAL: {\n id: 'internal', // anchor click redirecting on an internal url\n isBeginning: true,\n attributed: true,\n type: 'interaction',\n event: 'click',\n method: 'eventListener'\n },\n EXTERNAL: {\n id: 'external', // anchor click redirecting on an external url\n isBeginning: true,\n attributed: true,\n type: 'interaction',\n event: 'click',\n method: 'eventListener'\n },\n DOWNLOAD: {\n id: 'download', // anchor click downloading a file\n isBeginning: true,\n attributed: true,\n type: 'interaction',\n event: 'click',\n method: 'eventListener'\n },\n BUTTON: {\n id: 'button', // button click\n isBeginning: true,\n attributed: true,\n type: 'interaction',\n event: 'click',\n method: 'eventListener'\n },\n DOUBLE_CLICK: {\n id: 'dblclick', // double click\n isBeginning: true,\n attributed: true,\n type: 'interaction',\n event: 'dblclick',\n method: 'eventListener'\n },\n // event\n OPEN: {\n id: 'open', // open event\n isSingular: true,\n attributed: false,\n type: 'event',\n method: 'eventListener'\n },\n COMPLETE: {\n id: 'complete', // complete event\n isSingular: true,\n attributed: false,\n type: 'event',\n method: 'eventListener'\n },\n FOCUS: {\n id: 'focus', // focus event\n isSingular: true,\n attributed: false,\n type: 'event',\n method: 'eventListener'\n },\n ERROR: {\n id: 'error', // error event\n isSingular: true,\n attributed: false,\n type: 'event'\n },\n ADD: {\n id: 'add', // add event\n isSingular: true,\n attributed: false,\n type: 'event'\n },\n REMOVE: {\n id: 'remove', // remove event\n isSingular: true,\n attributed: false,\n type: 'event'\n },\n DISPLAY: {\n id: 'display', // display event\n isSingular: true,\n attributed: false,\n type: 'event'\n },\n CHANGE: {\n id: 'change', // input event change\n isSingular: true,\n attributed: true,\n type: 'event',\n event: 'change',\n method: 'change'\n },\n PROGRESS: {\n id: 'progress', // video retention event with percent of the part reached\n isBeginning: true,\n attributed: true,\n type: 'event'\n },\n // component interaction\n SHARE: {\n id: 'share', // component share click (share)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n PRESS: {\n id: 'press', // component press click (pressable tag)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n RELEASE: {\n id: 'release', // component release click (pressable tag)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n DISMISS: {\n id: 'dismiss', // component dismiss click (dismissible tag)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n UPLOAD: {\n id: 'upload', // component upload click (upload)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n CHECK: {\n id: 'check', // component check click (checkbox, radio, toggle)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n UNCHECK: {\n id: 'uncheck', // component uncheck click (checkbox, radio, toggle)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n SELECT: {\n id: 'select', // component select change (select)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n SUBSCRIBE: {\n id: 'subscribe', // component subscribe click (follow)\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n // component event\n DISCLOSE: {\n id: 'disclose', // component disclose event (accordion, modal, tab)\n isBeginning: true,\n attributed: false,\n type: 'event'\n },\n SEARCH: {\n id: 'search', // component disclose event (accordion, modal, tab)\n isBeginning: true,\n attributed: false,\n type: 'event'\n },\n SHOW: {\n id: 'show', // component show event (tooltip)\n isSingular: true,\n attributed: false,\n type: 'event'\n },\n HIDE: {\n id: 'hide', // component hide event (tooltip)\n isSingular: true,\n attributed: false,\n type: 'event'\n },\n // video\n AUTOPLAY: {\n id: 'autoplay', // video autoplay event\n isBeginning: true,\n attributed: false,\n type: 'event'\n },\n PLAY: {\n id: 'play', // video play click\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n PAUSE: {\n id: 'pause', // video pause click\n isBeginning: true,\n attributed: false,\n type: 'interaction'\n },\n END: {\n id: 'end', // video end event\n isBeginning: true,\n attributed: false,\n type: 'event'\n }\n};\n\nexport default Type;\n","const Type = {\n UNDEFINED: 'undefined',\n HEADING: 'heading',\n COMPONENT: 'component',\n CONTENT: 'content'\n};\n\nexport { Type };\n","import api from '../../../../api';\nimport { Type } from './type';\n\nconst NODE_POSITION = Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINED_BY;\n\nclass Heading {\n constructor (heading) {\n this._label = heading.textContent.trim();\n this._level = Number(heading.tagName.charAt(1));\n }\n\n get level () {\n return this._level;\n }\n\n get label () {\n return this._label;\n }\n}\n\nclass Member {\n constructor (node, target, level) {\n this._type = Type.UNDEFINED;\n this._node = node;\n this._target = target;\n this._level = level;\n this._label = '';\n this._component = '';\n this._isValid = true;\n this.analyse();\n }\n\n _parseHeadings () {\n const selector = Array.from({ length: this._level }, (v, i) => `h${i + 1}`).join(',');\n this._headings = Array.from(this._node.querySelectorAll(selector)).filter(heading => heading === this._node || heading.parentNode === this._node || (heading.parentNode != null && heading.parentNode.parentNode === this._node)).filter(heading => (this._target.compareDocumentPosition(heading) & NODE_POSITION) > 0).map(heading => new Heading(heading)).reverse();\n }\n\n _getComponent () {\n if (typeof api !== 'function') return false;\n const element = api(this._node);\n if (!element) return false;\n const instance = Object.values(element).filter(actionee => actionee.isActionee).sort((a, b) => b.priority - a.priority)[0];\n if (!instance) return false;\n\n this._type = Type.COMPONENT;\n this._isValid = instance.validate(this._target);\n const selector = Array.from({ length: 6 }, (v, i) => `h${i + 1}`).join(',');\n const top = Array.from(this._node.querySelectorAll(selector)).map(heading => new Heading(heading)).sort((a, b) => a.level - b.level)[0];\n if (top && top.level <= this._level) this._level = top.level - 1;\n\n const hx = this._node.closest(selector);\n if (hx) {\n const heading = new Heading(hx);\n if (heading.level <= this._level) this._level = heading.level - 1;\n }\n\n if (!isNaN(instance.level) && instance.level < this._level) this._level = instance.level;\n this._label = instance.label;\n this._component = instance.component;\n return true;\n }\n\n _getHeading () {\n if (!this._headings.length) return false;\n const labels = [];\n this._headings.forEach(heading => {\n if (heading.level <= this._level) {\n if (heading.level > 1) labels.unshift(heading.label);\n this._level = heading.level - 1;\n }\n });\n if (!labels.length) return false;\n this._type = Type.HEADING;\n this._label = labels.join(' ');\n return true;\n }\n\n analyse () {\n this._parseHeadings();\n if (this._getComponent()) return;\n if (this._getHeading()) return;\n if (this._node !== this._target) return;\n\n const label = this._node.textContent.trim();\n if (!label) return;\n this._type = Type.CONTENT;\n this._label = label;\n }\n\n get type () {\n return this._type;\n }\n\n get level () {\n return this._level;\n }\n\n get label () {\n return this._label;\n }\n\n get component () {\n return this._component;\n }\n\n get node () {\n return this._node;\n }\n\n get target () {\n return this._target;\n }\n\n get isValid () {\n return this._isValid;\n }\n}\n\nexport { Member };\n","import normalize from '../normalize';\nimport { Member } from './member';\nimport { Type } from './type';\n\nclass Hierarchy {\n constructor (node) {\n this._node = node;\n this._process();\n }\n\n _process () {\n // console.log('_______________ start ____________________');\n const member = new Member(this._node, this._node, 6);\n // console.log('- FIRST MEMBER', member);\n this._level = member.level;\n this._members = [member];\n\n let node = this._node.parentNode;\n\n while (document.documentElement.contains(node) && node !== document.documentElement && this._level > 0) {\n // console.log('MEMBERS ARRAY', this._members);\n // console.log('NODE ANALYSIS', node);\n const member = new Member(node, this._node, this._level);\n // console.log('NEW MEMBER', member);\n switch (true) {\n case member.type === Type.UNDEFINED:\n // console.log('****UNDEFINED');\n break;\n\n case !member.isValid:\n // console.log('****INVALID');\n break;\n\n case member.label === this._members[0].label && member.type === Type.HEADING && this._members[0].type === Type.COMPONENT:\n // console.log('***** SAME');\n // do nothing\n break;\n\n case member.label === this._members[0].label && member.type === Type.COMPONENT && this._members[0].type === Type.HEADING:\n // console.log('***** SAME INVERT');\n this._members.splice(0, 1, member);\n break;\n\n default:\n this._members.unshift(member);\n if (member.level < this._level) this._level = member.level;\n }\n\n node = node.parentNode;\n }\n\n this._label = normalize(this._members[this._members.length - 1].label);\n this._title = normalize(this._members.filter(member => member.label).map(member => member.label).join(' '));\n const components = this._members.filter(member => member.component).map(member => member.component);\n this._component = normalize(components.join(' '));\n this._localComponent = components[components.length - 1];\n this._globalComponent = components[0];\n\n // console.log('========= end ===========');\n }\n\n get localComponent () {\n return this._localComponent;\n }\n\n get globalComponent () {\n return this._globalComponent;\n }\n\n get label () {\n return this._label;\n }\n\n get title () {\n return this._title;\n }\n\n get component () {\n return this._component;\n }\n}\n\nexport { Hierarchy };\n","import api from '../../../api';\nimport actions from './actions';\nimport { Hierarchy } from '../utils/hierarchy/hierarchy';\nimport queue from '../engine/queue';\n\nclass ActionElement {\n constructor (node, type, id, category = '', title = null, parameters = {}, isRating = false, isForced = false) {\n this._node = node;\n this._type = type;\n this._id = id || this._node.id;\n this._isMuted = false;\n this._title = title;\n this._category = category;\n this._parameters = parameters;\n this._isRating = isRating;\n this._isForced = isForced;\n this._hasBegun = false;\n\n // this._init();\n requestAnimationFrame(this._init.bind(this));\n }\n\n _init () {\n this._hierarchy = new Hierarchy(this._node);\n\n let id = '';\n let type = '';\n if (this._id) id = `_[${this._id}]`;\n else api.inspector.warn(`Analytics API requires an id to be set on tracked element. Missing on ${this._node.outerHTML}`);\n if (this._type) type = `(${this._type.id})_`;\n this._name = `${type}${this._title || this._hierarchy.title}${id}`;\n\n this._action = actions.getAction(this._name, this._type.status);\n if (this._type.isSingular) this._action.singularize();\n Object.keys(this._parameters).forEach(key => this._action.addParameter(key, this._parameters[key]));\n this._action.isMuted = this._isMuted;\n this._action.isForced = this._isForced;\n\n this._action.labels[0] = this._type.id;\n this._action.labels[1] = this._hierarchy.globalComponent;\n this._action.labels[2] = this._hierarchy.localComponent;\n this._action.labels[4] = this._category;\n\n if (this._hierarchy.label) this._action.addParameter('component_label', this._hierarchy.label);\n if (this._hierarchy.title) this._action.addParameter('heading_hierarchy', this._hierarchy.title);\n if (this._hierarchy.component) this._action.addParameter('component_hierarchy', this._hierarchy.component);\n\n this.begin();\n }\n\n get isMuted () {\n return this._action ? this._action.isMuted : this._isMuted;\n }\n\n set isMuted (value) {\n this._isMuted = value;\n if (this._action) this._action.isMuted = value;\n }\n\n get action () {\n return this._action;\n }\n\n rewind () {\n this._hasBegun = false;\n this.begin();\n }\n\n begin (data = {}) {\n if (this._hasBegun) return;\n this._hasBegun = true;\n if (this._type.isBeginning && (this._type.isSingular || this._isRating)) queue.appendStartingAction(this._action, data);\n }\n\n act (data = {}) {\n if (this._isMuted) return;\n if (!this._action) {\n requestAnimationFrame(() => this.act(data));\n return;\n }\n queue.appendEndingAction(this._action, data);\n }\n\n dispose () {\n actions.remove(this._action);\n }\n}\n\nexport { ActionElement };\n","import api from '../../../api.js';\nimport { Type } from '../../analytics/action/type';\nimport { ActionElement } from '../../analytics/action/action-element';\nimport { ActioneeEmission } from './actionee-emission';\n\nconst ActionAttributes = {\n RATING: api.internals.ns.attr('analytics-rating'),\n ACTION: api.internals.ns.attr('analytics-action')\n};\n\nclass Actionee extends api.core.Instance {\n constructor (priority = -1, category = '', title = null, isForced = false) {\n super();\n this._type = null;\n this._priority = priority;\n this._category = category;\n this._title = title;\n this._parameters = {};\n this._data = {};\n this._isMuted = false;\n this._isForced = isForced;\n }\n\n static get instanceClassName () {\n return 'Actionee';\n }\n\n get proxy () {\n const scope = this;\n\n const proxy = {\n validate: (target, members) => scope.validate(target, members)\n };\n\n const proxyAccessors = {\n get isActionee () {\n return true;\n },\n get label () {\n return scope.label;\n },\n get priority () {\n return scope.priority;\n },\n get level () {\n return scope.level;\n },\n get node () {\n return scope.node; // TODO: remove in v2\n }\n };\n\n return api.internals.property.completeAssign(super.proxy, proxy, proxyAccessors);\n }\n\n get data () {\n return this._data;\n }\n\n _config (element, registration) {\n super._config(element, registration);\n\n if (this._type === null) {\n this._sort(element);\n this._isMuted = true;\n return;\n }\n\n this._actionElement = new ActionElement(this.node, this._type, this.id, this._category, this.getAttribute(ActionAttributes.ACTION) || this._title, this._parameters, this.hasAttribute(ActionAttributes.RATING), this.hasAttribute(ActionAttributes.ACTION) || this._isForced);\n if (this._isMuted) this._actionElement.isMuted = true;\n\n this.addDescent(ActioneeEmission.REWIND, this.rewind.bind(this));\n\n this._sort(element);\n }\n\n _sort (element) {\n const actionees = element.instances.filter(instance => instance.isActionee).sort((a, b) => b.priority - a.priority);\n if (actionees.length <= 1) return;\n actionees.forEach((actionee, index) => { actionee.isMuted = index > 0; });\n }\n\n get isMuted () {\n return this._actionElement ? this._actionElement.isMuted : this._isMuted;\n }\n\n set isMuted (value) {\n this._isMuted = value;\n if (this._actionElement) this._actionElement.isMuted = value;\n }\n\n get priority () {\n return this._priority;\n }\n\n setPriority (value) {\n this._priority = value;\n }\n\n get isInteractive () {\n return this.node.tagName === 'A' || this.node.tagName === 'BUTTON';\n }\n\n detectInteractionType (node) {\n if (!node) node = this.node;\n const tag = node.tagName;\n const href = node.getAttribute('href');\n const isDownload = node.hasAttribute('download');\n const hostname = node.hostname;\n\n switch (true) {\n case tag !== 'A':\n this._type = Type.CLICK;\n break;\n\n case isDownload:\n this._type = Type.DOWNLOAD;\n this.value = href;\n break;\n\n case hostname === location.hostname :\n this._type = Type.INTERNAL;\n this.value = href;\n break;\n\n case hostname.length > 0 :\n this._type = Type.EXTERNAL;\n this.value = href;\n break;\n\n default:\n this._type = Type.CLICK;\n break;\n }\n }\n\n setClickType () {\n this._type = Type.CLICK;\n }\n\n listenActionClick (target) {\n if (target) {\n this._clickTarget = target;\n this._clickTarget.addEventListener('click', this._handlingClick, { capture: true });\n } else this.listenClick({ capture: true });\n }\n\n handleClick () {\n this.act();\n }\n\n setImpressionType () {\n this._type = Type.IMPRESSION;\n }\n\n rewind () {\n if (this._actionElement) this._actionElement.rewind();\n }\n\n act (data = {}) {\n if (this._actionElement !== undefined) {\n this._data.component_value = this.value;\n this._actionElement.act(Object.assign(this._data, data));\n }\n }\n\n getFirstText (node) {\n if (!node) node = this.node;\n if (node.childNodes && node.childNodes.length > 0) {\n for (let i = 0; i < node.childNodes.length; i++) {\n if (node.childNodes[i].nodeType === Node.TEXT_NODE) {\n const text = node.childNodes[i].textContent.trim();\n if (text) {\n return this.cropText(text);\n }\n }\n }\n\n for (let i = 0; i < node.childNodes.length; i++) {\n const text = this.getFirstText(node.childNodes[i]);\n if (text) {\n return this.cropText(text);\n }\n }\n }\n return '';\n }\n\n cropText (text, length = 50) {\n return text.length > 50 ? `${text.substring(0, 50).trim()}[...]` : text;\n }\n\n getInteractionLabel () {\n const title = this.getAttribute('title');\n if (title) return this.cropText(title);\n\n const text = this.getFirstText();\n if (text) return text;\n\n const img = this.node.querySelector('img');\n if (img) {\n const alt = img.getAttribute('alt');\n if (alt) return this.cropText(alt);\n }\n\n return null;\n }\n\n getHeadingLabel (length = 6) {\n const selector = Array.from({ length: length }, (v, i) => `h${i + 1}`).join(',');\n const headings = Array.from(this.querySelectorAll(selector)).filter(heading => (this.node.compareDocumentPosition(heading) & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0);\n if (headings.length) {\n for (const heading of headings) {\n const text = this.getFirstText(heading);\n if (text) return text;\n }\n }\n }\n\n detectLevel (node) {\n if (!node) node = this.node;\n const selector = Array.from({ length: 6 }, (v, i) => `h${i + 1}`).join(',');\n const levels = Array.from(node.querySelectorAll(selector)).map(heading => Number(heading.tagName.charAt(1)));\n if (levels.length) this._level = Math.min.apply(null, levels) - 1;\n }\n\n validate (target) {\n return true;\n }\n\n get actionElement () {\n return this._actionElement;\n }\n\n get label () {\n return null;\n }\n\n get value () {\n return this._value || this.label;\n }\n\n set value (value) {\n this._value = value;\n }\n\n get isActionee () {\n return true;\n }\n\n get level () {\n return this._level;\n }\n\n get type () {\n return this._type;\n }\n\n dispose () {\n if (this._clickTarget) {\n this._clickTarget.removeEventListener('click', this._handlingClick);\n }\n super.dispose();\n }\n}\n\nexport { Actionee };\n","import Type from '../../analytics/action/type';\nimport { Actionee } from '../core/actionee';\n\nclass AttributeActionee extends Actionee {\n constructor () {\n super(100, '', null, true);\n }\n\n static get instanceClassName () {\n return 'AttributeActionee';\n }\n\n init () {\n this._attribute = this.registration.selector.replace(/[[\\]]/g, '');\n const id = this._attribute.split('-').pop();\n this._type = Object.values(Type).filter(type => type.id === id)[0];\n this._title = this.getAttribute(this._attribute);\n if (this._type === Type.CLICK) this.detectInteractionType();\n\n switch (this._type.method) {\n case 'eventListener':\n this.listen(this._type.event, this.handleEvent.bind(this));\n break;\n\n case 'change':\n this.listen(this._type.event, this.handleChange.bind(this));\n break;\n }\n }\n\n handleEvent (e) {\n this._actionElement.act();\n }\n\n handleChange (e) {\n this._actionElement.act({ change_value: e.target.value });\n }\n\n dispose () {\n this._actionElement.dispose();\n super.dispose();\n }\n}\n\nexport { AttributeActionee };\n","import api from '../../../api';\nimport Type from '../../analytics/action/type';\nimport { AttributeActionee } from './attribute-actionee';\n\nconst integrateAttributes = () => {\n Object.values(Type)\n .filter(type => type.attributed)\n .forEach(type => api.internals.register(api.internals.ns.attr.selector(`analytics-${type.id}`), AttributeActionee));\n};\n\nexport default integrateAttributes;\n","import api from '../../../../api.js';\n\nexport const ButtonEmission = {\n CLICK: api.internals.ns.emission('button', 'click')\n};\n","import api from '../../../api.js';\nimport { Type } from '../../analytics/action/type';\nimport { Actionee } from '../core/actionee';\nimport { ButtonEmission } from './button/button-emission';\n\nclass ComponentActionee extends Actionee {\n constructor (priority = -1) {\n super(priority, 'dsfr_component');\n }\n\n static get instanceClassName () {\n return 'ComponentActionee';\n }\n\n get proxy () {\n const scope = this;\n\n const proxyAccessors = {\n get component () {\n return scope.component;\n }\n };\n\n return api.internals.property.completeAssign(super.proxy, proxyAccessors);\n }\n\n setDiscloseType () {\n this._type = Type.DISCLOSE;\n }\n\n listenDisclose () {\n this.listen(api.core.DisclosureEvent.DISCLOSE, this._handleDisclose.bind(this), { capture: true });\n }\n\n _handleDisclose () {\n this.act();\n }\n\n setChangeType () {\n this._type = Type.CHANGE;\n }\n\n listenChange () {\n this.listen('change', this._handleChange.bind(this), { capture: true });\n }\n\n _handleChange (e) {\n if (e.target && e.target.value) {\n this.setChangeValue(e);\n this.act();\n }\n }\n\n setChangeValue (e) {\n this.value = e.target.value;\n }\n\n listenInputValidation (node, type = Type.CLICK, isSendingInputValue = false) {\n if (!node) node = this.node;\n this._type = type;\n this._isSendingInputValue = isSendingInputValue;\n this.addAscent(ButtonEmission.CLICK, this._actValidatedInput.bind(this));\n const button = this.element.getDescendantInstances('ButtonActionee', null, true)[0];\n if (button) button.isMuted = true;\n this._validatedInput = node.querySelector('input');\n this._handlingInputValidation = this._handleInputValidation.bind(this);\n if (this._validatedInput) this._validatedInput.addEventListener('keydown', this._handlingInputValidation);\n }\n\n _handleInputValidation (e) {\n if (e.keyCode === 13) this._actValidatedInput();\n }\n\n _actValidatedInput () {\n if (this._isActingValidatedInput) return;\n this._isActingValidatedInput = true;\n if (this._isSendingInputValue) this.value = this._validatedInput.value.trim();\n this.act();\n this.request(this._actedValidatedInput.bind(this));\n }\n\n _actedValidatedInput () {\n this._isActingValidatedInput = false;\n }\n\n setCheckType () {\n this._type = Type.CHECK;\n }\n\n detectCheckableType () {\n const isChecked = this.node.checked;\n this._type = isChecked ? Type.UNCHECK : Type.CHECK;\n }\n\n listenCheckable () {\n this.listen('change', this._handleCheckable.bind(this), { capture: true });\n }\n\n _handleCheckable (e) {\n if (e.target && e.target.value !== 'on') {\n this.value = e.target.value;\n }\n\n switch (true) {\n case this._type === Type.CHECK && e.target.checked:\n case this._type === Type.UNCHECK && !e.target.checked:\n this.act();\n break;\n }\n }\n\n detectPressableType () {\n const isPressable = this.node.hasAttribute('aria-pressed');\n if (isPressable) {\n const isPressed = this.node.getAttribute('aria-pressed') === 'true';\n this._type = isPressed ? Type.RELEASE : Type.PRESS;\n }\n return isPressable;\n }\n\n listenPressable () {\n this.listen('click', this._handlePressable.bind(this), { capture: true });\n }\n\n _handlePressable (e) {\n switch (true) {\n case this._type === Type.PRESS && e.target.getAttribute('aria-pressed') === 'false':\n case this._type === Type.RELEASE && e.target.getAttribute('aria-pressed') === 'true':\n this.act();\n break;\n }\n }\n\n setDismissType () {\n this._type = Type.DISMISS;\n }\n\n get component () {\n return null;\n }\n\n dispose () {\n if (this._validatedInput) {\n this._validatedInput.removeEventListener('keydown', this._handlingInputValidation);\n }\n\n super.dispose();\n }\n}\n\nexport { ComponentActionee };\n","import api from '../../../../api';\n\nexport const AccordionSelector = {\n ACCORDION: api.internals.ns.selector('accordion'),\n TITLE: api.internals.ns.selector('accordion__title')\n};\n","const ID = 'accordion';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass AccordionButtonActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'AccordionButtonActionee';\n }\n\n init () {\n this.isMuted = true;\n }\n\n get button () {\n return this.element.getInstance('CollapseButton');\n }\n\n get label () {\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n\n return 'bouton d\\'accordéon';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { AccordionButtonActionee };\n","import { ComponentActionee } from '../component-actionee';\nimport { AccordionSelector } from './accordion-selector';\nimport { AccordionButtonActionee } from './accordion-button-actionee';\nimport ID from './id';\n\nclass AccordionActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'AccordionActionee';\n }\n\n init () {\n this.setDiscloseType();\n this.wrapper = this.node.closest(AccordionSelector.ACCORDION);\n this.detectLevel(this.wrapper);\n this.register(`[aria-controls=\"${this.id}\"]`, AccordionButtonActionee);\n this.listenDisclose();\n }\n\n get label () {\n if (this.wrapper) {\n const title = this.wrapper.querySelector(AccordionSelector.TITLE);\n if (title) {\n const text = this.getFirstText(title);\n if (text) return text;\n }\n }\n const instance = this.element.getInstance('Collapse');\n if (instance) {\n const button = instance.buttons.filter(button => button.isPrimary)[0];\n if (button) {\n const text = this.getFirstText(button);\n if (text) return text;\n }\n }\n return 'accordéon';\n }\n\n get component () {\n return ID;\n }\n\n dispose () {\n super.dispose();\n }\n}\n\nexport { AccordionActionee };\n","import api from '../../../../api';\nimport { AccordionActionee } from './accordion-actionee';\n\nconst integrateAccordion = () => {\n if (api.accordion) {\n api.internals.register(api.accordion.AccordionSelector.COLLAPSE, AccordionActionee);\n }\n};\n\nexport default integrateAccordion;\n","import api from '../../../../api';\n\nexport const AlertSelector = {\n ALERT: api.internals.ns.selector('alert'),\n TITLE: api.internals.ns.selector('alert__title')\n};\n","const ID = 'alert';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { AlertSelector } from './alert-selector';\nimport ID from './id';\n\nclass AlertActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'AlertActionee';\n }\n\n get label () {\n const alertTitle = this.node.querySelector(AlertSelector.TITLE);\n if (alertTitle) {\n const text = this.getFirstText(alertTitle);\n if (text) return text;\n }\n return 'alerte';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { AlertActionee };\n","import api from '../../../../api';\nimport { AlertSelector } from './alert-selector';\nimport { AlertActionee } from './alert-actionee';\n\nconst integrateAlert = () => {\n api.internals.register(AlertSelector.ALERT, AlertActionee);\n};\n\nexport default integrateAlert;\n","import api from '../../../../api';\n\nexport const BreadcrumbSelector = {\n LINK: `${api.internals.ns.selector('breadcrumb__link')}:not([aria-current])`,\n COLLAPSE: `${api.internals.ns.selector('breadcrumb')} ${api.internals.ns.selector('collapse')}`\n};\n","const ID = 'breadcrumb';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass BreadcrumbActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'BreadcrumbActionee';\n }\n\n get label () {\n return 'fil d\\'ariane';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { BreadcrumbActionee };\n","import { ComponentActionee } from '../component-actionee';\n\nclass BreadcrumbLinkActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'BreadcrumbLinkActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n handleClick () {\n this.act();\n }\n\n get label () {\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n return 'lien fil d\\'ariane';\n }\n\n get component () {\n return null;\n }\n}\n\nexport { BreadcrumbLinkActionee };\n","import api from '../../../../api';\nimport { BreadcrumbSelector } from './breadcrumb-selector';\nimport { BreadcrumbActionee } from './breadcrumb-actionee';\nimport { BreadcrumbLinkActionee } from './breadcrumb-link-actionee';\n\nconst integrateBreadcrumb = () => {\n if (api.breadcrumb) {\n api.internals.register(BreadcrumbSelector.COLLAPSE, BreadcrumbActionee);\n api.internals.register(BreadcrumbSelector.LINK, BreadcrumbLinkActionee);\n }\n};\n\nexport default integrateBreadcrumb;\n","import api from '../../../../api.js';\n\nexport const ButtonSelector = {\n BUTTON: `${api.internals.ns.selector('btn')}:not(${api.internals.ns.selector('btn--close')})`\n};\n","const ID = 'button';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\nimport { ButtonEmission } from './button-emission';\n\nclass ButtonActionee extends ComponentActionee {\n constructor () {\n super(1);\n this._data = {};\n }\n\n static get instanceClassName () {\n return 'ButtonActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n handleClick () {\n this.ascend(ButtonEmission.CLICK);\n this.act();\n }\n\n get label () {\n if (this.node.tagName === 'input') {\n switch (this.node.type) {\n case 'button':\n case 'submit':\n if (this.hasAttribute('value')) return this.getAttribute('value');\n }\n }\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n return 'bouton';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { ButtonActionee };\n","import api from '../../../../api';\nimport { ButtonSelector } from './button-selector';\nimport { ButtonActionee } from './button-actionee';\n\nconst integrateButton = () => {\n api.internals.register(ButtonSelector.BUTTON, ButtonActionee);\n};\n\nexport default integrateButton;\n","import api from '../../../../api';\n\nexport const CalloutSelector = {\n CALLOUT: api.internals.ns.selector('callout'),\n TITLE: api.internals.ns.selector('callout__title')\n};\n","const ID = 'callout';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { CalloutSelector } from './callout-selector';\nimport ID from './id';\n\nclass CalloutActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'CalloutActionee';\n }\n\n get label () {\n const calloutTitle = this.node.querySelector(CalloutSelector.TITLE);\n if (calloutTitle) {\n const text = this.getFirstText(calloutTitle);\n if (text) return text;\n }\n\n return 'mise en avant';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { CalloutActionee };\n","import api from '../../../../api';\nimport { CalloutSelector } from './callout-selector';\nimport { CalloutActionee } from './callout-actionee';\n\nconst integrateCallout = () => {\n api.internals.register(CalloutSelector.CALLOUT, CalloutActionee);\n};\n\nexport default integrateCallout;\n","import api from '../../../../api';\n\nexport const CardSelector = {\n CARD: api.internals.ns.selector('card'),\n LINK: `${api.internals.ns.selector('card__title')} a, ${api.internals.ns.selector('card__title')} button`,\n TITLE: api.internals.ns.selector('card__title')\n};\n","const ID = 'card';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { CardSelector } from './card-selector';\nimport ID from './id';\n\nclass CardActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'CardActionee';\n }\n\n init () {\n const link = this.node.querySelector(CardSelector.LINK);\n if (link) {\n this.link = link;\n this.detectInteractionType(link);\n this.listenActionClick(link);\n }\n }\n\n get label () {\n const cardTitle = this.node.querySelector(CardSelector.TITLE);\n if (cardTitle) {\n const text = this.getFirstText(cardTitle);\n if (text) return text;\n }\n\n const heading = this.getHeadingLabel();\n if (heading) return heading;\n\n return 'carte';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { CardActionee };\n","import api from '../../../../api';\nimport { CardSelector } from './card-selector';\nimport { CardActionee } from './card-actionee';\n\nconst integrateCard = () => {\n api.internals.register(CardSelector.CARD, CardActionee);\n};\n\nexport default integrateCard;\n","import api from '../../../../api';\n\nexport const CheckboxSelector = {\n INPUT: api.internals.ns.selector('checkbox-group [type=\"checkbox\"]')\n};\n","const ID = 'checkbox';\n\nexport default ID;\n","import api from '../../../../api.js';\nimport { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass CheckboxActionee extends ComponentActionee {\n constructor () {\n super(1);\n this._data = {};\n }\n\n static get instanceClassName () {\n return 'CheckboxActionee';\n }\n\n init () {\n this.detectCheckableType();\n this.listenCheckable();\n }\n\n get label () {\n const label = this.node.parentNode.querySelector(api.internals.ns.selector('label'));\n if (label) {\n const text = this.getFirstText(label);\n if (text) return text;\n }\n return 'case à cocher';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { CheckboxActionee };\n","import api from '../../../../api';\nimport { CheckboxSelector } from './checkbox-selector';\nimport { CheckboxActionee } from './checkbox-actionee';\n\nconst integrateCheckbox = () => {\n api.internals.register(CheckboxSelector.INPUT, CheckboxActionee);\n};\n\nexport default integrateCheckbox;\n","import api from '../../../../api.js';\n\nexport const ConnectSelector = {\n CONNECT: api.internals.ns.selector('connect'),\n LINK: api.internals.ns.selector('connect + * a, connect + a')\n};\n","const ID = 'connect';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass ConnectActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'ConnectActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n if (this.node.classList.contains('fr-connect--plus')) return 'FranceConnect+';\n return 'FranceConnect';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { ConnectActionee };\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass ConnectLinkActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'ConnectLinkActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n return this.getFirstText() || 'qu\\'est-ce que FranceConnect ?';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { ConnectLinkActionee };\n","import api from '../../../../api';\nimport { ConnectSelector } from './connect-selector';\nimport { ConnectActionee } from './connect-actionee';\nimport { ConnectLinkActionee } from './connect-link-actionee';\n\nconst integrateConnect = () => {\n api.internals.register(ConnectSelector.CONNECT, ConnectActionee);\n api.internals.register(ConnectSelector.LINK, ConnectLinkActionee);\n};\n\nexport default integrateConnect;\n","import api from '../../../../api';\n\nexport const ConsentSelector = {\n BANNER: api.internals.ns.selector('consent-banner')\n};\n","const ID = 'consent';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass ConsentActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'ConsentActionee';\n }\n\n get label () {\n return 'gestionnaire de consentement';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { ConsentActionee };\n","import api from '../../../../api';\nimport { ConsentSelector } from './consent-selector';\nimport { ConsentActionee } from './consent-actionee';\n\nconst integrateConsent = () => {\n api.internals.register(ConsentSelector.BANNER, ConsentActionee);\n};\n\nexport default integrateConsent;\n","import api from '../../../../api';\n\nexport const DownloadSelector = {\n LINK: api.internals.ns.selector('download__link')\n};\n","const ID = 'download';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass DownloadActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'DownloadActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n const text = this.getFirstText();\n if (text) return text;\n return 'téléchargement';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { DownloadActionee };\n","import api from '../../../../api';\nimport { DownloadSelector } from './download-selector';\nimport { DownloadActionee } from './download-actionee';\n\nconst integrateDownload = () => {\n api.internals.register(DownloadSelector.LINK, DownloadActionee);\n};\n\nexport default integrateDownload;\n","import api from '../../../../api';\n\nexport const FollowSelector = {\n FOLLOW: api.internals.ns.selector('follow'),\n NEWSLETTER_INPUT_GROUP: api.internals.ns.selector('follow__newsletter') + ' ' + api.internals.ns.selector('input-group')\n};\n","const ID = 'follow';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { FollowSelector } from './follow-selector';\nimport { Type } from '../../../analytics/action/type';\nimport ID from './id';\n\nclass FollowActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'FollowActionee';\n }\n\n init () {\n this._inputGroup = this.querySelector(FollowSelector.NEWSLETTER_INPUT_GROUP);\n if (this._inputGroup) {\n this.listenInputValidation(this._inputGroup, Type.SUBSCRIBE);\n const input = this.element.getDescendantInstances('InputActionee', null, true)[0];\n if (input) input.isMuted = true;\n }\n }\n\n get label () {\n return 'lettre d\\'information et réseaux sociaux';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { FollowActionee };\n","import api from '../../../../api';\nimport { FollowSelector } from './follow-selector';\nimport { FollowActionee } from './follow-actionee';\n\nconst integrateFollow = () => {\n api.internals.register(FollowSelector.FOLLOW, FollowActionee);\n};\n\nexport default integrateFollow;\n","import api from '../../../../api';\n\nexport const FooterSelector = {\n FOOTER: api.internals.ns.selector('footer'),\n FOOTER_LINKS: `${api.internals.ns.selector('footer')} a[href], ${api.internals.ns.selector('footer')} button`\n};\n","const ID = 'footer';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass FooterActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'FooterActionee';\n }\n\n get label () {\n return 'pied de page';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { FooterActionee };\n","import { ComponentActionee } from '../component-actionee';\n\nclass FooterLinkActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'FooterLinkActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n const label = this.getInteractionLabel();\n if (label) return label;\n\n return 'lien pied de page';\n }\n}\n\nexport { FooterLinkActionee };\n","import api from '../../../../api';\nimport { FooterSelector } from './footer-selector';\nimport { FooterActionee } from './footer-actionee';\nimport { FooterLinkActionee } from './footer-link-actionee';\n\nconst integrateFooter = () => {\n api.internals.register(FooterSelector.FOOTER, FooterActionee);\n api.internals.register(FooterSelector.FOOTER_LINKS, FooterLinkActionee);\n};\n\nexport default integrateFooter;\n","const ID = 'header';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass HeaderActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'HeaderActionee';\n }\n\n get label () {\n return 'en-tête';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { HeaderActionee };\n","import { ComponentActionee } from '../component-actionee';\n\nclass HeaderModalButtonActionee extends ComponentActionee {\n constructor () {\n super(4);\n }\n\n static get instanceClassName () {\n return 'HeaderModalButtonActionee';\n }\n}\n\nexport { HeaderModalButtonActionee };\n","import api from '../../../../api.js';\nimport { ComponentActionee } from '../component-actionee';\nimport { HeaderModalButtonActionee } from './header-modal-button-actionee';\n\nclass HeaderModalActionee extends ComponentActionee {\n constructor () {\n super(0);\n }\n\n static get instanceClassName () {\n return 'HeaderModalActionee';\n }\n\n init () {\n if (this.isBreakpoint(api.core.Breakpoints.LG)) {\n this.setPriority(4);\n this.register(`[aria-controls=\"${this.id}\"]`, HeaderModalButtonActionee);\n }\n }\n}\n\nexport { HeaderModalActionee };\n","import api from '../../../../api.js';\n\nexport const HeaderSelector = {\n TOOLS_BUTTON: `${api.internals.ns.selector('header__tools-links')} ${api.internals.ns.selector('btns-group')} ${api.internals.ns.selector('btn')}`,\n MENU_BUTTON: `${api.internals.ns.selector('header__menu-links')} ${api.internals.ns.selector('btns-group')} ${api.internals.ns.selector('btn')}`\n};\n","import { ComponentActionee } from '../component-actionee';\nimport api from '../../../../api';\n\nclass HeaderToolsButtonActionee extends ComponentActionee {\n constructor () {\n super(4);\n }\n\n static get instanceClassName () {\n return 'HeaderToolsButtonActionee';\n }\n\n init () {\n if (this.isBreakpoint(api.core.Breakpoints.LG)) this._priority = -1;\n }\n}\n\nexport { HeaderToolsButtonActionee };\n","import { ComponentActionee } from '../component-actionee';\nimport api from '../../../../api';\n\nclass HeaderMenuButtonActionee extends ComponentActionee {\n static get instanceClassName () {\n return 'HeaderMenuButtonActionee';\n }\n\n init () {\n if (this.isBreakpoint(api.core.Breakpoints.LG)) this.setPriority(4);\n }\n}\n\nexport { HeaderMenuButtonActionee };\n","import api from '../../../../api';\nimport { HeaderActionee } from './header-actionee';\nimport { HeaderModalActionee } from './header-modal-actionee';\nimport { HeaderSelector } from './header-selector';\nimport { HeaderToolsButtonActionee } from './header-tools-button-actionee';\nimport { HeaderMenuButtonActionee } from './header-menu-button-actionee';\n\nconst integrateHeader = () => {\n if (api.header) {\n api.internals.register(api.header.HeaderSelector.HEADER, HeaderActionee);\n api.internals.register(api.header.HeaderSelector.MODALS, HeaderModalActionee);\n api.internals.register(HeaderSelector.TOOLS_BUTTON, HeaderToolsButtonActionee);\n api.internals.register(HeaderSelector.MENU_BUTTON, HeaderMenuButtonActionee);\n }\n};\n\nexport default integrateHeader;\n","import api from '../../../../api';\n\nexport const HighlightSelector = {\n HIGHLIGHT: api.internals.ns.selector('highlight')\n};\n","const ID = 'highlight';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass HighlightActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'HighlightActionee';\n }\n\n get label () {\n return 'mise en exergue';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { HighlightActionee };\n","import api from '../../../../api';\nimport { HighlightSelector } from './highlight-selector';\nimport { HighlightActionee } from './highlight-actionee';\n\nconst integrateHighlight = () => {\n api.internals.register(HighlightSelector.HIGHLIGHT, HighlightActionee);\n};\n\nexport default integrateHighlight;\n","import api from '../../../../api';\n\nexport const LinkSelector = {\n LINK: api.internals.ns.selector('link')\n};\n","const ID = 'link';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass LinkActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'LinkActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n\n return 'lien';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { LinkActionee };\n","import api from '../../../../api';\nimport { LinkSelector } from './link-selector';\nimport { LinkActionee } from './link-actionee';\n\nconst integrateLink = () => {\n api.internals.register(LinkSelector.LINK, LinkActionee);\n};\n\nexport default integrateLink;\n","import api from '../../../../api';\n\nexport const InputSelector = {\n INPUT: api.internals.ns.selector('input-group')\n};\n","const ID = 'input';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport api from '../../../../api.js';\nimport ID from './id';\n\nclass InputActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'InputActionee';\n }\n\n init () {\n this._input = this.querySelector(api.internals.ns.selector('input'));\n this._label = this.querySelector(api.internals.ns.selector('label'));\n this._inputWrap = this.querySelector(api.internals.ns.selector('input-wrap'));\n\n if (this._inputWrap) this.listenInputValidation(this._inputWrap);\n }\n\n get label () {\n if (this._label) {\n const text = this.getFirstText(this._label);\n if (text) return text;\n }\n\n return 'champ de saisie';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { InputActionee };\n","import api from '../../../../api';\nimport { InputSelector } from './input-selector';\nimport { InputActionee } from './input-actionee';\n\nconst integrateInput = () => {\n api.internals.register(InputSelector.INPUT, InputActionee);\n};\n\nexport default integrateInput;\n","import api from '../../../../../core/api.js';\n\nexport const ModalSelector = {\n TITLE: api.internals.ns.selector('modal__title')\n};\n","const ID = 'modal';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { ModalSelector } from './modal-selector.js';\nimport ID from './id';\n\nclass ModalActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'ModalActionee';\n }\n\n init () {\n this.setDiscloseType();\n this.detectLevel();\n this.listenDisclose();\n }\n\n get label () {\n const title = this.node.querySelector(ModalSelector.TITLE);\n\n if (title) {\n const text = this.getFirstText(title);\n if (text) return text;\n }\n\n const heading = this.getHeadingLabel(2);\n if (heading) return heading;\n\n const instance = this.element.getInstance('Modal');\n if (instance) {\n const button = instance.buttons.filter(button => button.isPrimary)[0];\n if (button) {\n const text = this.getFirstText(button.node);\n if (text) return text;\n }\n }\n return 'modale';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { ModalActionee };\n","import api from '../../../../api';\nimport { ModalActionee } from './modal-actionee';\n\nconst integrateModal = () => {\n if (api.modal) {\n api.internals.register(api.modal.ModalSelector.MODAL, ModalActionee);\n }\n};\n\nexport default integrateModal;\n","import { ComponentActionee } from '../component-actionee';\n\nclass NavigationActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'NavigationActionee';\n }\n\n get label () {\n return 'navigation';\n }\n}\n\nexport { NavigationActionee };\n","import api from '../../../../api';\n\nexport const NavigationSelector = {\n LINK: api.internals.ns.selector('nav__link'),\n BUTTON: api.internals.ns.selector('nav__btn')\n};\n","const ID = 'navigation';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass NavigationLinkActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'NavigationLinkActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n\n return 'lien de navigation';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { NavigationLinkActionee };\n","import api from '../../../../api';\nimport { ComponentActionee } from '../component-actionee';\nimport { NavigationSelector } from './navigation-selector';\n\nclass NavigationSectionActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'NavigationSectionActionee';\n }\n\n init () {\n this._wrapper = this.node.closest(api.navigation.NavigationSelector.ITEM);\n }\n\n get label () {\n if (this._wrapper) {\n const button = this._wrapper.querySelector(NavigationSelector.BUTTON);\n if (button) {\n const text = this.getFirstText(button);\n if (text) return text;\n }\n }\n\n const instance = this.element.getInstance('Collapse');\n if (instance) {\n const button = instance.buttons.filter(button => button.isPrimary)[0];\n if (button) {\n const text = this.getFirstText(button);\n if (text) return text;\n }\n }\n return 'section de navigation';\n }\n}\n\nexport { NavigationSectionActionee };\n","import api from '../../../../api';\nimport { NavigationActionee } from './navigation-actionee';\nimport { NavigationSelector } from './navigation-selector';\nimport { NavigationLinkActionee } from './navigation-link-actionee';\nimport { NavigationSectionActionee } from './navigation-section-actionee';\n\nconst integrateNavigation = () => {\n if (api.navigation) {\n api.internals.register(api.navigation.NavigationSelector.NAVIGATION, NavigationActionee);\n api.internals.register(NavigationSelector.LINK, NavigationLinkActionee);\n api.internals.register(api.navigation.NavigationSelector.COLLAPSE, NavigationSectionActionee);\n }\n};\n\nexport default integrateNavigation;\n","import api from '../../../../api.js';\n\nexport const PaginationSelector = {\n PAGINATION: api.internals.ns.selector('pagination'),\n LINK: api.internals.ns.selector('pagination__link'),\n NEXT_LINK: api.internals.ns.selector('pagination__link--next'),\n LAST_LINK: api.internals.ns.selector('pagination__link--last'),\n ANALYTICS_TOTAL: api.internals.ns.attr('analytics-page-total'),\n CURRENT: '[aria-current=\"page\"]'\n};\n","const ID = 'pagination';\n\nexport default ID;\n","import api from '../../../../api';\nimport { ComponentActionee } from '../component-actionee';\nimport { PaginationSelector } from './pagination-selector';\nimport ID from './id';\n\nclass PaginationActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'PaginationActionee';\n }\n\n init () {\n this.setPagination();\n }\n\n get label () {\n return 'pagination';\n }\n\n get component () {\n return ID;\n }\n\n setPagination () {\n const currentLink = this.node.querySelector(PaginationSelector.CURRENT);\n if (!currentLink) return;\n const currentLabel = this.getFirstText(currentLink);\n if (!currentLabel) return;\n const current = this.getInt(currentLabel);\n if (isNaN(current)) return;\n api.analytics.page.current = current;\n\n const total = this.getTotalPage();\n if (isNaN(total)) return;\n api.analytics.page.total = total;\n }\n\n getTotalPage () {\n const attr = parseInt(this.node.getAttribute(PaginationSelector.ANALYTICS_TOTAL));\n if (!isNaN(attr)) return attr;\n const links = this.node.querySelectorAll(`${PaginationSelector.LINK}:not(${PaginationSelector.NEXT_LINK}):not(${PaginationSelector.LAST_LINK})`);\n if (!links) return null;\n const totalLabel = this.getFirstText(links[links.length - 1]);\n if (!totalLabel) return null;\n return this.getInt(totalLabel);\n }\n\n getInt (val) {\n const ints = val.match(/\\d+/);\n if (!ints || ints.length === 0) return null;\n return parseInt(ints[0]);\n }\n}\n\nexport { PaginationActionee };\n","import { ComponentActionee } from '../component-actionee';\n\nclass PaginationLinkActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'PaginationLinkActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n return 'lien pagination';\n }\n\n get component () {\n return null;\n }\n}\n\nexport { PaginationLinkActionee };\n","import api from '../../../../api';\nimport { PaginationSelector } from './pagination-selector';\nimport { PaginationActionee } from './pagination-actionee';\nimport { PaginationLinkActionee } from './pagination-link-actionee';\n\nconst integratePagination = () => {\n api.internals.register(PaginationSelector.PAGINATION, PaginationActionee);\n api.internals.register(PaginationSelector.LINK, PaginationLinkActionee);\n};\n\nexport default integratePagination;\n","import api from '../../../../api';\n\nexport const QuoteSelector = {\n QUOTE: api.internals.ns.selector('quote')\n};\n","const ID = 'quote';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass QuoteActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'QuoteActionee';\n }\n\n get label () {\n const blockquote = this.node.querySelector('blockquote');\n if (blockquote) {\n const firstText = this.getFirstText(blockquote);\n if (firstText) {\n return firstText;\n }\n }\n return 'citation';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { QuoteActionee };\n","import api from '../../../../api';\nimport { QuoteSelector } from './quote-selector';\nimport { QuoteActionee } from './quote-actionee';\n\nconst integrateQuote = () => {\n api.internals.register(QuoteSelector.QUOTE, QuoteActionee);\n};\n\nexport default integrateQuote;\n","import api from '../../../../api';\n\nexport const RadioSelector = {\n INPUT: api.internals.ns.selector('radio-group [type=\"radio\"]')\n};\n","import api from '../../../../api';\n\nexport const FormSelector = {\n LABEL: api.internals.ns.selector('label'),\n FIELDSET: api.internals.ns.selector('fieldset'),\n LEGEND: api.internals.ns.selector('fieldset__legend')\n};\n","const ID = 'radio';\n\nexport default ID;\n","import api from '../../../../api.js';\nimport { ComponentActionee } from '../component-actionee';\nimport { FormSelector } from '../form/form-selector';\nimport ID from './id';\n\nclass RadioActionee extends ComponentActionee {\n constructor () {\n super(1);\n this._data = {};\n }\n\n static get instanceClassName () {\n return 'RadioActionee';\n }\n\n init () {\n this.setCheckType();\n this.listenCheckable();\n }\n\n get label () {\n const parts = [];\n const fieldset = this.node.closest(FormSelector.FIELDSET);\n if (fieldset) {\n const legend = fieldset.querySelector(FormSelector.LEGEND);\n if (legend) {\n const firstTextLegend = this.getFirstText(legend);\n if (firstTextLegend) parts.push(firstTextLegend);\n }\n }\n const label = this.node.parentNode.querySelector(api.internals.ns.selector('label'));\n if (label) {\n const firstTextLabel = this.getFirstText(label);\n if (firstTextLabel) parts.push(firstTextLabel);\n }\n return parts.join(' ');\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { RadioActionee };\n","import api from '../../../../api';\nimport { RadioSelector } from './radio-selector';\nimport { RadioActionee } from './radio-actionee';\n\nconst integrateRadio = () => {\n api.internals.register(RadioSelector.INPUT, RadioActionee);\n};\n\nexport default integrateRadio;\n","import api from '../../../../api';\n\nexport const SearchSelector = {\n SEARCH_BAR: api.internals.ns.selector('search-bar')\n};\n","const ID = 'search';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { Type } from '../../../analytics/action/type';\nimport ID from './id';\n\nclass SearchActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'SearchActionee';\n }\n\n init () {\n this.listenInputValidation(this.node, Type.SEARCH, true);\n }\n\n get label () {\n return 'barre de recherche';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { SearchActionee };\n","import api from '../../../../api';\nimport { SearchSelector } from './search-selector';\nimport { SearchActionee } from './search-actionee';\n\nconst integrateSearch = () => {\n api.internals.register(SearchSelector.SEARCH_BAR, SearchActionee);\n};\n\nexport default integrateSearch;\n","import api from '../../../../api';\n\nexport const SelectSelector = {\n SELECT: api.internals.ns.selector('select')\n};\n","const ID = 'select';\n\nexport default ID;\n","import api from '../../../../api.js';\nimport { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass SelectActionee extends ComponentActionee {\n constructor () {\n super(1);\n this._data = {};\n }\n\n static get instanceClassName () {\n return 'SelectActionee';\n }\n\n init () {\n this.setChangeType();\n this.listenChange();\n }\n\n setChangeValue (e) {\n if (!e.target || !e.target.selectedOptions) return;\n const value = Array.from(e.target.selectedOptions).map(option => option.text).join(' - ');\n if (value) this.value = value;\n }\n\n get label () {\n const label = this.node.parentNode.querySelector(api.internals.ns.selector('label'));\n if (label) {\n const firstText = this.getFirstText(label);\n if (firstText) return firstText;\n }\n\n return 'liste déroulante';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { SelectActionee };\n","import api from '../../../../api';\nimport { SelectSelector } from './select-selector';\nimport { SelectActionee } from './select-actionee';\n\nconst integrateSelect = () => {\n api.internals.register(SelectSelector.SELECT, SelectActionee);\n};\n\nexport default integrateSelect;\n","import api from '../../../../api';\n\nexport const ShareSelector = {\n SHARE: api.internals.ns.selector('share'),\n TITLE: api.internals.ns.selector('share__title')\n};\n","const ID = 'share';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\nimport { ShareSelector } from './share-selector';\n\nclass ShareActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'ShareActionee';\n }\n\n get label () {\n const title = this.querySelector(ShareSelector.TITLE);\n if (title) {\n const firstText = this.getFirstText(title);\n if (firstText) return firstText;\n }\n return 'boutons de partage';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { ShareActionee };\n","import api from '../../../../api';\nimport { ShareSelector } from './share-selector';\nimport { ShareActionee } from './share-actionee';\n\nconst integrateShare = () => {\n api.internals.register(ShareSelector.SHARE, ShareActionee);\n};\n\nexport default integrateShare;\n","import api from '../../../../api';\n\nexport const SidemenuSelector = {\n SIDEMENU: api.internals.ns.selector('sidemenu'),\n ITEM: api.internals.ns.selector('sidemenu__item'),\n LINK: api.internals.ns.selector('sidemenu__link'),\n BUTTON: api.internals.ns.selector('sidemenu__btn'),\n TITLE: api.internals.ns.selector('sidemenu__title')\n};\n","import { ComponentActionee } from '../component-actionee';\nimport { SidemenuSelector } from './sidemenu-selector';\n\nclass SidemenuActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'SidemenuActionee';\n }\n\n get label () {\n const sidemenu = this.node.closest(SidemenuSelector.SIDEMENU);\n if (sidemenu) {\n const title = sidemenu.querySelector(SidemenuSelector.TITLE);\n if (title) {\n const firstText = this.getFirstText(title);\n if (firstText) return firstText;\n }\n }\n\n return 'menu Latéral';\n }\n}\n\nexport { SidemenuActionee };\n","const ID = 'sidemenu';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass SidemenuLinkActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'SidemenuLinkActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n\n return 'lien menu latéral';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { SidemenuLinkActionee };\n","import { ComponentActionee } from '../component-actionee';\nimport { SidemenuSelector } from './sidemenu-selector';\n\nclass SidemenuSectionActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'SidemenuSectionActionee';\n }\n\n init () {\n this._wrapper = this.node.closest(SidemenuSelector.ITEM);\n }\n\n get label () {\n if (this._wrapper) {\n const button = this._wrapper.querySelector(SidemenuSelector.BUTTON);\n if (button) {\n const firstText = this.getFirstText(button);\n if (firstText) return firstText;\n }\n }\n const instance = this.element.getInstance('Collapse');\n if (instance) {\n const button = instance.buttons.filter(button => button.isPrimary)[0];\n if (button) {\n const firstTextBtn = this.getFirstText(button);\n if (firstTextBtn) return firstTextBtn;\n }\n }\n return 'section menu latéral';\n }\n}\n\nexport { SidemenuSectionActionee };\n","import api from '../../../../api';\nimport { SidemenuSelector } from './sidemenu-selector';\nimport { SidemenuActionee } from './sidemenu-actionee';\nimport { SidemenuLinkActionee } from './sidemenu-link-actionee';\nimport { SidemenuSectionActionee } from './sidemenu-section-actionee';\n\nconst integrateSidemenu = () => {\n if (api.sidemenu) {\n api.internals.register(SidemenuSelector.SIDEMENU, SidemenuActionee);\n api.internals.register(SidemenuSelector.LINK, SidemenuLinkActionee);\n api.internals.register(api.sidemenu.SidemenuSelector.COLLAPSE, SidemenuSectionActionee);\n }\n};\n\nexport default integrateSidemenu;\n","import api from '../../../../api';\n\nexport const SummarySelector = {\n SUMMARY: api.internals.ns.selector('summary'),\n LINK: api.internals.ns.selector('summary__link'),\n TITLE: api.internals.ns.selector('summary__title'),\n ITEM: `${api.internals.ns.selector('summary')} li`\n};\n","import { ComponentActionee } from '../component-actionee';\nimport { SummarySelector } from './summary-selector';\n\nclass SummaryActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'SummaryActionee';\n }\n\n get label () {\n const title = this.node.querySelector(SummarySelector.TITLE);\n if (title) {\n const firstText = this.getFirstText(title);\n if (firstText) return firstText;\n }\n return 'sommaire';\n }\n}\n\nexport { SummaryActionee };\n","const ID = 'summary';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass SummaryLinkActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'SummaryLinkActionee';\n }\n\n init () {\n this.detectInteractionType();\n this.listenActionClick();\n }\n\n get label () {\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n return 'lien sommaire';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { SummaryLinkActionee };\n","import { ComponentActionee } from '../component-actionee';\nimport { SummarySelector } from './summary-selector';\n\nclass SummarySectionActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'SummarySectionActionee';\n }\n\n init () {\n this._link = this.querySelector(SummarySelector.LINK);\n }\n\n validate (target) {\n return this._link !== target;\n }\n\n get label () {\n if (!this._link) return null;\n const firstText = this.getFirstText(this._link);\n if (firstText) return firstText;\n return 'section sommaire';\n }\n}\n\nexport { SummarySectionActionee };\n","import api from '../../../../api';\nimport { SummarySelector } from './summary-selector';\nimport { SummaryActionee } from './summary-actionee';\nimport { SummaryLinkActionee } from './summary-link-actionee';\nimport { SummarySectionActionee } from './summary-section-actionee';\n\nconst integrateSummary = () => {\n api.internals.register(SummarySelector.SUMMARY, SummaryActionee);\n api.internals.register(SummarySelector.LINK, SummaryLinkActionee);\n api.internals.register(SummarySelector.ITEM, SummarySectionActionee);\n};\n\nexport default integrateSummary;\n","const ID = 'tab';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass TabButtonActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'TabButtonActionee';\n }\n\n init () {\n this.isMuted = true;\n }\n\n get label () {\n const text = this.getFirstText();\n if (text) return text;\n return 'bouton onglet';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TabButtonActionee };\n","import api from '../../../../api.js';\nimport { ComponentActionee } from '../component-actionee';\nimport { TabButtonActionee } from './tab-button-actionee';\nimport ID from './id';\n\nclass TabActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'TabActionee';\n }\n\n init () {\n this.setDiscloseType();\n this.register(`[aria-controls=\"${this.id}\"]`, TabButtonActionee);\n this._instance = this.element.getInstance('TabPanel');\n this.listenDisclose();\n }\n\n get label () {\n const tabs = this.node.closest(api.tab.TabSelector.GROUP);\n if (tabs) {\n const tab = tabs.querySelector(`${api.tab.TabSelector.LIST} [aria-controls=\"${this.id}\"]${api.tab.TabSelector.TAB}`);\n if (tab) {\n const firstTextTab = this.getFirstText(tab);\n if (firstTextTab) return firstTextTab;\n }\n }\n\n const button = this._instance.buttons.filter(button => button.isPrimary)[0];\n if (button) {\n const firstTextBtn = this.getFirstText(button);\n if (firstTextBtn) return firstTextBtn;\n }\n return 'onglet';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TabActionee };\n","import api from '../../../../api';\nimport { TabActionee } from './tab-actionee';\n\nconst integrateTab = () => {\n if (api.tab) {\n api.internals.register(api.tab.TabSelector.PANEL, TabActionee);\n }\n};\n\nexport default integrateTab;\n","import api from '../../../../api';\n\nexport const TableSelector = {\n TABLE: api.internals.ns.selector('table')\n};\n","const ID = 'table';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass TableActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'TableActionee';\n }\n\n get label () {\n const caption = this.node.querySelector('caption');\n if (caption) {\n const firstText = this.getFirstText(caption);\n if (firstText) return firstText;\n }\n return 'tableau';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TableActionee };\n","import api from '../../../../api';\nimport { TableSelector } from './table-selector';\nimport { TableActionee } from './table-actionee';\n\nconst integrateTable = () => {\n api.internals.register(TableSelector.TABLE, TableActionee);\n};\n\nexport default integrateTable;\n","import api from '../../../../api';\n\nexport const TagSelector = {\n TAG: api.internals.ns.selector('tag'),\n PRESSABLE: '[aria-pressed]',\n DISMISSIBLE: `${api.internals.ns.selector('tag--dismiss', '')}`\n};\n","const ID = 'tag';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { TagSelector } from './tag-selector';\nimport ID from './id';\n\nclass TagActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'TagActionee';\n }\n\n init () {\n switch (true) {\n case this.detectPressableType():\n this.listenPressable();\n break;\n\n case this.isInteractive && this.node.classList.contains(TagSelector.DISMISSIBLE):\n this.setDismissType();\n this.listenActionClick();\n break;\n\n case this.isInteractive:\n this.detectInteractionType();\n this.listenActionClick();\n break;\n }\n }\n\n get label () {\n const firstText = this.getFirstText();\n if (firstText) return firstText;\n\n return 'tag';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TagActionee };\n","import api from '../../../../api';\nimport { TagSelector } from './tag-selector';\nimport { TagActionee } from './tag-actionee';\n\nconst integrateTag = () => {\n api.internals.register(TagSelector.TAG, TagActionee);\n};\n\nexport default integrateTag;\n","import api from '../../../../api';\n\nexport const TileSelector = {\n TILE: api.internals.ns.selector('tile'),\n LINK: `${api.internals.ns.selector('tile__title')} a, ${api.internals.ns.selector('tile__title')} button`,\n TITLE: api.internals.ns.selector('tile__title')\n};\n","const ID = 'tile';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { TileSelector } from './tile-selector';\nimport ID from './id';\n\nclass TileActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'TileActionee';\n }\n\n init () {\n const link = this.node.querySelector(TileSelector.LINK);\n if (link) {\n this.link = link;\n this.detectInteractionType(link);\n this.listenActionClick(link);\n }\n }\n\n get label () {\n const tileTitle = this.node.querySelector(TileSelector.TITLE);\n if (tileTitle) return this.getFirstText(tileTitle);\n\n const heading = this.getHeadingLabel();\n if (heading) return heading;\n\n return 'tuile';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TileActionee };\n","import api from '../../../../api';\nimport { TileSelector } from './tile-selector';\nimport { TileActionee } from './tile-actionee';\n\nconst integrateTile = () => {\n api.internals.register(TileSelector.TILE, TileActionee);\n};\n\nexport default integrateTile;\n","import api from '../../../../api';\n\nexport const ToggleSelector = {\n INPUT: api.internals.ns.selector('toggle [type=\"checkbox\"]')\n};\n","const ID = 'toggle';\n\nexport default ID;\n","import api from '../../../../api.js';\nimport { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass ToggleActionee extends ComponentActionee {\n constructor () {\n super(1);\n this._data = {};\n }\n\n static get instanceClassName () {\n return 'ToggleActionee';\n }\n\n init () {\n this.detectCheckableType();\n this.listenCheckable();\n }\n\n get label () {\n const label = this.node.parentNode.querySelector(api.internals.ns.selector('toggle__label'));\n if (label) {\n const firstText = this.getFirstText(label);\n if (firstText) return firstText;\n }\n\n return 'interrupteur';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { ToggleActionee };\n","import api from '../../../../api';\nimport { ToggleSelector } from './toggle-selector';\nimport { ToggleActionee } from './toggle-actionee';\n\nconst integrateToggle = () => {\n api.internals.register(ToggleSelector.INPUT, ToggleActionee);\n};\n\nexport default integrateToggle;\n","import api from '../../../../api';\n\nconst TRANSCRIPTION = api.internals.ns.selector('transcription');\nconst COLLAPSE = api.internals.ns.selector('collapse');\n\nexport const TranscriptionSelector = {\n TRANSCRIPTION: TRANSCRIPTION,\n COLLAPSE: `${TRANSCRIPTION} > ${COLLAPSE}, ${TRANSCRIPTION} > *:not(${TRANSCRIPTION}):not(${COLLAPSE}) > ${COLLAPSE}, ${TRANSCRIPTION} > *:not(${TRANSCRIPTION}):not(${COLLAPSE}) > *:not(${TRANSCRIPTION}):not(${COLLAPSE}) > ${COLLAPSE}`,\n COLLAPSE_LEGACY: `${TRANSCRIPTION} ${COLLAPSE}`,\n TITLE: `${TRANSCRIPTION}__title`\n};\n","const ID = 'transcription';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass TranscriptionButtonActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'TranscriptionButtonActionee';\n }\n\n init () {\n this.isMuted = true;\n }\n\n get button () {\n return this.element.getInstance('CollapseButton');\n }\n\n get label () {\n const text = this.getFirstText();\n if (text) return text;\n return 'bouton transcription';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TranscriptionButtonActionee };\n","import { ComponentActionee } from '../component-actionee';\nimport { TranscriptionSelector } from './transcription-selector';\nimport { TranscriptionButtonActionee } from './transcription-button-actionee';\nimport ID from './id';\n\nclass TranscriptionActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'TranscriptionActionee';\n }\n\n init () {\n this.setDiscloseType();\n this.wrapper = this.node.closest(TranscriptionSelector.ACCORDION);\n this.detectLevel(this.wrapper);\n this.register(`[aria-controls=\"${this.id}\"]`, TranscriptionButtonActionee);\n this.listenDisclose();\n }\n\n get label () {\n if (this.wrapper) {\n const title = this.wrapper.querySelector(TranscriptionSelector.TITLE);\n if (title) {\n const firstTextTitle = this.getFirstText(title);\n if (firstTextTitle) return firstTextTitle;\n }\n }\n const instance = this.element.getInstance('Collapse');\n if (instance) {\n const button = instance.buttons.filter(button => button.isPrimary)[0];\n if (button) {\n const firstTextBtn = this.getFirstText(button);\n if (firstTextBtn) return firstTextBtn;\n }\n }\n return 'transcription';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TranscriptionActionee };\n","import api from '../../../../api';\nimport { TranscriptionSelector } from './transcription-selector';\nimport { TranscriptionActionee } from './transcription-actionee';\n\nconst integrateTranscription = () => {\n api.internals.register(TranscriptionSelector.COLLAPSE, TranscriptionActionee);\n};\n\nexport default integrateTranscription;\n","import api from '../../../../api';\n\nconst TRANSLATE = api.internals.ns.selector('translate');\nconst COLLAPSE = api.internals.ns.selector('collapse');\n\nexport const TranslateSelector = {\n BUTTON: `${TRANSLATE}__btn`,\n COLLAPSE: `${TRANSLATE} > ${COLLAPSE}, ${TRANSLATE} > *:not(${TRANSLATE}):not(${COLLAPSE}) > ${COLLAPSE}, ${TRANSLATE} > *:not(${TRANSLATE}):not(${COLLAPSE}) > *:not(${TRANSLATE}):not(${COLLAPSE}) > ${COLLAPSE}`,\n COLLAPSE_LEGACY: `${TRANSLATE} ${COLLAPSE}`\n};\n","const ID = 'translate';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport { TranslateSelector } from './translate-selector';\nimport ID from './id';\n\nclass TranslateActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'TranslateActionee';\n }\n\n get label () {\n const button = this.node.querySelector(TranslateSelector.BUTTON);\n if (button) {\n const title = button.getAttribute('title');\n if (title) return title;\n }\n\n return 'sélecteur de langue';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TranslateActionee };\n","import { ComponentActionee } from '../component-actionee';\nimport ID from './id';\n\nclass TranslateButtonActionee extends ComponentActionee {\n constructor () {\n super(2);\n }\n\n static get instanceClassName () {\n return 'TranslateButtonActionee';\n }\n\n init () {\n this.isMuted = true;\n }\n\n get button () {\n return this.element.getInstance('CollapseButton');\n }\n\n get label () {\n const label = this.getInteractionLabel();\n if (label) return label;\n return 'bouton sélecteur de langue';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { TranslateButtonActionee };\n","import api from '../../../../api';\nimport { TranslateSelector } from './translate-selector';\nimport { TranslateActionee } from './translate-actionee';\nimport { TranslateButtonActionee } from './translate-button-actionee';\n\nconst integrateTranslate = () => {\n api.internals.register(TranslateSelector.COLLAPSE, TranslateActionee);\n api.internals.register(TranslateSelector.BUTTON, TranslateButtonActionee);\n};\n\nexport default integrateTranslate;\n","import api from '../../../../api';\n\nexport const UploadSelector = {\n UPLOAD: api.internals.ns.selector('upload')\n};\n","const ID = 'upload';\n\nexport default ID;\n","import { ComponentActionee } from '../component-actionee';\nimport api from '../../../../api.js';\nimport ID from './id';\n\nclass UploadActionee extends ComponentActionee {\n constructor () {\n super(1);\n }\n\n static get instanceClassName () {\n return 'UploadActionee';\n }\n\n init () {\n this.setChangeType();\n this._label = this.node.parentNode.querySelector(api.internals.ns.selector('label'));\n this.listenChange();\n }\n\n setChangeValue (e) {\n if (!e.target || !e.target.files) return;\n const value = Array.from(e.target.files).map(file => /(?:\\.([^.]+))?$/.exec(file.name)[1]).filter((name, index, array) => array.indexOf(name) === index).join(' - ');\n if (value) this.value = value;\n }\n\n get label () {\n if (this._label) {\n const text = this.getFirstText(this._label);\n if (text) return text;\n }\n\n return 'ajout de fichier';\n }\n\n get component () {\n return ID;\n }\n}\n\nexport { UploadActionee };\n","import api from '../../../../api';\nimport { UploadSelector } from './upload-selector';\nimport { UploadActionee } from './upload-actionee';\n\nconst integrateUpload = () => {\n api.internals.register(UploadSelector.UPLOAD, UploadActionee);\n};\n\nexport default integrateUpload;\n","import integrateAccordion from './accordion/integrate';\nimport integrateAlert from './alert/integrate';\nimport integrateBreadcrumb from './breadcrumb/integrate';\n// import integrateBadge from './badge/integrate';\nimport integrateButton from './button/integrate';\nimport integrateCallout from './callout/integrate';\nimport integrateCard from './card/integrate';\nimport integrateCheckbox from './checkbox/integrate';\nimport integrateConnect from './connect/integrate';\nimport integrateConsent from './consent/integrate';\n// import integrateContent from './content/integrate';\nimport integrateDownload from './download/integrate';\nimport integrateFollow from './follow/integrate';\nimport integrateFooter from './footer/integrate';\nimport integrateHeader from './header/integrate';\nimport integrateHighlight from './highlight/integrate';\nimport integrateLink from './link/integrate';\nimport integrateInput from './input/integrate';\nimport integrateModal from './modal/integrate';\nimport integrateNavigation from './navigation/integrate';\n// import integrateNotice from './notice/integrate';\nimport integratePagination from './pagination/integrate';\nimport integrateQuote from './quote/integrate';\nimport integrateRadio from './radio/integrate';\nimport integrateSearch from './search/integrate';\nimport integrateSelect from './select/integrate';\nimport integrateShare from './share/integrate';\nimport integrateSidemenu from './sidemenu/integrate';\n// import integrateStepper from './stepper/integrate';\nimport integrateSummary from './summary/integrate';\nimport integrateTab from './tab/integrate';\nimport integrateTable from './table/integrate';\nimport integrateTag from './tag/integrate';\nimport integrateTile from './tile/integrate';\nimport integrateToggle from './toggle/integrate';\n// import integrateTooltip from './tooltip/integrate';\nimport integrateTranscription from './transcription/integrate';\nimport integrateTranslate from './translate/integrate';\nimport integrateUpload from './upload/integrate';\n\nconst integrateComponents = () => {\n integrateAccordion();\n integrateBreadcrumb();\n integrateAlert();\n // integrateBadge();\n integrateButton();\n integrateCallout();\n integrateConnect();\n integrateConsent();\n // integrateContent();\n integrateCard();\n integrateInput();\n integrateCheckbox();\n integrateDownload();\n integrateFooter();\n integrateFollow();\n integrateHeader();\n integrateHighlight();\n integrateLink();\n integrateModal();\n integrateNavigation();\n // integrateNotice();\n integratePagination();\n integrateQuote();\n integrateRadio();\n integrateSearch();\n integrateSelect();\n integrateShare();\n integrateSidemenu();\n // integrateStepper();\n integrateSummary();\n integrateTab();\n integrateTable();\n integrateTag();\n integrateTile();\n integrateToggle();\n // integrateTooltip();\n integrateTranscription();\n integrateTranslate();\n integrateUpload();\n};\n\nexport default integrateComponents;\n","// import './core/core';\nimport integrateAttributes from './attributes/attributes';\nimport integrateComponents from './component/components';\n\nconst integration = () => {\n integrateAttributes();\n integrateComponents();\n};\n\nexport default integration;\n","import api from './index.js';\nimport integration from './script/integration/integration';\n\napi.analytics.readiness.then(() => integration(), () => {});\n\nexport default api;\n"],"names":["Type","ID","COLLAPSE"],"mappings":"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"}