{"version":3,"file":"dsfr.module.js","sources":["../src/core/script/api/state.js","../.config/config.js","../src/core/script/api/inspect/inspector.js","../src/core/script/api/options/starters.js","../src/core/script/api/options/modes.js","../src/core/script/api/options/options.js","../src/core/script/api/utilities/collection.js","../src/core/script/api/modules/module.js","../src/core/script/api/utilities/namespace.js","../src/core/script/api/utilities/dom/query-selector.js","../src/core/script/api/modules/register/registration.js","../src/core/script/api/modules/register/register.js","../src/core/script/api/modules/stage/element.js","../src/core/script/api/modules/stage/root-emission.js","../src/core/script/api/modules/register/key-codes.js","../src/core/script/api/modules/stage/root.js","../src/core/script/api/modules/stage/stage.js","../src/core/script/api/modules/render/renderer.js","../src/core/script/api/modules/resize/resizer.js","../src/core/script/api/modules/scroll/scroll-locker.js","../src/core/script/api/modules/load/load.js","../src/core/script/api/modules/font-swap/font-swap.js","../src/core/script/api/modules/mouse-move/mouse-move.js","../src/core/script/api/modules/hash/hash.js","../src/core/script/api/engine.js","../src/core/script/api/utilities/colors/colors.js","../src/core/script/api/utilities/dom/classes.js","../src/core/script/api/utilities/dom/actions.js","../src/core/script/api/utilities/dom/id.js","../src/core/script/api/utilities/dom/index.js","../src/core/script/api/utilities/image/data-uri-svg.js","../src/core/script/api/utilities/image/index.js","../src/core/script/api/utilities/support/browser-support.js","../src/core/script/api/utilities/support/index.js","../src/core/script/api/utilities/motion/transition-selector.js","../src/core/script/api/utilities/motion/index.js","../src/core/script/api/utilities/property/complete-assign.js","../src/core/script/api/utilities/property/index.js","../src/core/script/api/utilities/search-params/index.js","../src/core/script/api/internals.js","../src/core/script/api/api.js","../src/core/script/api/utilities/emitter.js","../src/core/script/api/modules/register/breakpoints.js","../src/core/script/api/modules/register/instance.js","../src/core/script/disclosure/disclosure-event.js","../src/core/script/disclosure/disclosure-emission.js","../src/core/script/disclosure/disclosure.js","../src/core/script/disclosure/disclosure-button.js","../src/core/script/disclosure/disclosure-selector.js","../src/core/script/disclosure/disclosures-group.js","../src/core/script/disclosure/disclosure-type.js","../src/core/script/collapse/collapse-button.js","../src/core/script/collapse/collapse-selector.js","../src/core/script/collapse/collapse.js","../src/core/script/collapse/collapses-group.js","../src/core/script/equisized/equisized-emission.js","../src/core/script/equisized/equisized.js","../src/core/script/equisized/equisizeds-group.js","../src/core/script/action/toggle/toggle-event.js","../src/core/script/action/toggle/toggle.js","../src/core/script/api/modules/stage/root-selector.js","../src/core/script/api/utilities/attribute.js","../src/core/script/inject/inject-svg.js","../src/core/script/inject/inject-svg-selector.js","../src/core/script/artwork/artwork.js","../src/core/script/artwork/artwork-selector.js","../src/core/script/assess/assess-selector.js","../src/core/script/assess/assess-emission.js","../src/core/script/assess/assess-file.js","../src/core/script/assess/assess-detail.js","../src/core/script/ratio/ratio-selector.js","../src/core/api.js","../src/core/script/ratio/ratio.js","../src/core/script/placement/place-selector.js","../src/core/script/placement/align-selector.js","../src/core/script/placement/placement-position.js","../src/core/script/placement/placement-align.js","../src/core/script/placement/placement-mode.js","../src/core/script/placement/placement.js","../src/core/script/placement/placement-referent.js","../src/core/index.js","../src/core/main.js","../src/scheme/script/scheme/scheme-value.js","../src/scheme/script/scheme/scheme-attribute.js","../src/scheme/script/scheme/scheme-theme.js","../src/scheme/script/scheme/scheme-emission.js","../src/scheme/script/scheme/scheme-event.js","../src/scheme/script/scheme/scheme.js","../src/scheme/script/scheme/scheme-selector.js","../src/scheme/index.js","../src/scheme/main.js","../src/component/accordion/script/accordion/accordion-selector.js","../src/component/accordion/script/accordion/accordion.js","../src/component/accordion/script/accordion/accordions-group.js","../src/component/accordion/index.js","../src/component/accordion/main.js","../src/component/button/script/button/button-selector.js","../src/component/button/index.js","../src/component/button/main.js","../src/component/card/script/card/card-download.js","../src/component/card/script/card/card-selector.js","../src/component/card/index.js","../src/component/card/main.js","../src/component/checkbox/script/checkbox/checkbox-selector.js","../src/component/checkbox/script/checkbox/checkbox-emission.js","../src/component/checkbox/script/checkbox/checkbox-input.js","../src/component/checkbox/index.js","../src/component/checkbox/main.js","../src/component/segmented/script/segmented/segmented-selector.js","../src/component/segmented/script/segmented/segmented-emission.js","../src/component/segmented/script/segmented/segmented.js","../src/component/segmented/script/segmented/segmented-element.js","../src/component/segmented/index.js","../src/component/segmented/main.js","../src/component/breadcrumb/script/breadcrumb/breadcrumb-selector.js","../src/component/breadcrumb/script/breadcrumb/breadcrumb.js","../src/component/breadcrumb/index.js","../src/component/breadcrumb/main.js","../src/component/tooltip/script/tooltip/tooltip-selector.js","../src/component/tooltip/script/tooltip/tooltip-referent.js","../src/component/tooltip/script/tooltip/tooltip-event.js","../src/component/tooltip/script/tooltip/tooltip.js","../src/component/tooltip/index.js","../src/component/tooltip/main.js","../src/component/toggle/script/toggle/toggle-input.js","../src/component/toggle/script/toggle/toggle-status-label.js","../src/component/toggle/script/toggle/toggle-selector.js","../src/component/toggle/index.js","../src/component/toggle/main.js","../src/component/sidemenu/script/sidemenu/sidemenu-selector.js","../src/component/sidemenu/script/sidemenu/sidemenu-list.js","../src/component/sidemenu/script/sidemenu/sidemenu-item.js","../src/component/sidemenu/index.js","../src/component/sidemenu/main.js","../src/component/modal/script/modal/modal-selector.js","../src/component/modal/script/modal/modal-button.js","../src/component/modal/script/modal/modal-attribute.js","../src/component/modal/script/modal/modal.js","../src/component/modal/script/modal/focus-trap.js","../src/component/modal/script/modal/modals-group.js","../src/component/modal/script/modal/modal-body.js","../src/component/modal/index.js","../src/component/modal/main.js","../src/component/password/script/password/password-emission.js","../src/component/password/script/password/password-toggle.js","../src/component/password/script/password/password.js","../src/component/password/script/password/password-selector.js","../src/component/password/script/password/password-input.js","../src/component/password/script/password/password-label.js","../src/component/password/index.js","../src/component/password/main.js","../src/component/navigation/script/navigation/navigation-selector.js","../src/component/navigation/script/navigation/navigation-item.js","../src/component/navigation/script/navigation/navigation-mouse-position.js","../src/component/navigation/script/navigation/navigation.js","../src/component/navigation/index.js","../src/component/navigation/main.js","../src/component/tab/script/tab/tab-button.js","../src/component/tab/script/tab/tab-selector.js","../src/component/tab/script/tab/tab-panel-direction.js","../src/component/tab/script/tab/tab-panel.js","../src/component/tab/script/tab/tab-keys.js","../src/component/tab/script/tab/tab-emission.js","../src/component/tab/script/tab/tabs-group.js","../src/component/tab/script/tab/tabs-list.js","../src/component/tab/index.js","../src/component/tab/main.js","../src/component/tag/script/tag/tag-event.js","../src/component/tag/script/tag/tag-dismissible.js","../src/component/tag/script/tag/tag-selector.js","../src/component/tag/index.js","../src/component/tag/main.js","../src/component/transcription/script/accordion/transcription-selector.js","../src/component/transcription/script/accordion/transcription.js","../src/component/transcription/index.js","../src/component/transcription/main.js","../src/component/tile/script/tile/tile-download.js","../src/component/tile/script/tile/tile-selector.js","../src/component/tile/index.js","../src/component/tile/main.js","../src/component/range/script/range/range-selector.js","../src/component/range/script/range/range-emission.js","../src/component/range/script/range/range-model.js","../src/component/range/script/range/range.js","../src/component/range/script/range/range-constraints.js","../src/component/range/script/range/range-input.js","../src/component/range/script/range/range-input2.js","../src/component/range/script/range/range-output.js","../src/component/range/script/range/range-limit.js","../src/component/range/index.js","../src/component/range/main.js","../src/component/header/script/header/header-selector.js","../src/component/header/script/header/header-links.js","../src/component/header/script/header/header-modal.js","../src/component/header/index.js","../src/component/header/main.js","../src/component/display/script/display/display-selector.js","../src/component/display/script/display/display.js","../src/component/display/index.js","../src/component/display/main.js","../src/component/table/script/table/table-emission.js","../src/component/table/script/table/table.js","../src/component/table/script/table/table-selector.js","../src/component/table/script/table/table-element.js","../src/component/table/script/table/table-caption.js","../src/component/table/script/table/table-row.js","../src/component/table/index.js","../src/component/table/main.js"],"sourcesContent":["class State {\n  constructor () {\n    this.modules = {};\n  }\n\n  create (ModuleClass) {\n    const module = new ModuleClass();\n    this.modules[module.type] = module;\n  }\n\n  getModule (type) {\n    return this.modules[type];\n  }\n\n  add (type, item) {\n    this.modules[type].add(item);\n  }\n\n  remove (type, item) {\n    this.modules[type].remove(item);\n  }\n\n  get isActive () {\n    return this._isActive;\n  }\n\n  set isActive (value) {\n    if (value === this._isActive) return;\n    this._isActive = value;\n    const values = Object.keys(this.modules).map((e) => {\n      return this.modules[e];\n    });\n    if (value) {\n      for (const module of values) {\n        module.activate();\n      }\n    } else {\n      for (const module of values) {\n        module.deactivate();\n      }\n    }\n  }\n\n  get isLegacy () {\n    return this._isLegacy;\n  }\n\n  set isLegacy (value) {\n    if (value === this._isLegacy) return;\n    this._isLegacy = value;\n  }\n}\n\nconst state = new State();\n\nexport default state;\n","const config = {\r\n  prefix: 'fr',\r\n  namespace: 'dsfr',\r\n  organisation: '@gouvfr',\r\n  version: '1.12.0'\r\n};\r\n\r\nexport default config;\r\n","import state from '../state.js';\nimport config from '../../../config.js';\n\nclass LogLevel {\n  constructor (level, light, dark, logger) {\n    this.level = level;\n    this.light = light;\n    this.dark = dark;\n\n    switch (logger) {\n      case 'warn':\n        this.logger = console.warn;\n        break;\n\n      case 'error':\n        this.logger = console.error;\n        break;\n\n      default:\n        this.logger = console.log;\n    }\n  }\n\n  log (...values) {\n    const message = new Message(config.namespace);\n    for (const value of values) message.add(value);\n    this.print(message);\n  }\n\n  print (message) {\n    message.setColor(this.color);\n    this.logger.apply(console, message.getMessage());\n  }\n\n  get color () {\n    return window.matchMedia('(prefers-color-scheme: dark)').matches ? this.dark : this.light;\n  }\n}\n\nclass Message {\n  constructor (domain) {\n    this.inputs = ['%c'];\n    this.styles = ['font-family:Marianne', 'line-height: 1.5'];\n    this.objects = [];\n\n    if (domain) this.add(`${domain} :`);\n  }\n\n  add (value) {\n    switch (typeof value) {\n      case 'object':\n      case 'function':\n        this.inputs.push('%o ');\n        this.objects.push(value);\n        break;\n\n      default:\n        this.inputs.push(`${value} `);\n    }\n  }\n\n  setColor (color) {\n    this.styles.push(`color:${color}`);\n  }\n\n  getMessage () {\n    return [this.inputs.join(''), this.styles.join(';'), ...this.objects];\n  }\n}\n\nconst LEVELS = {\n  log: new LogLevel(0, '#616161', '#989898'),\n  debug: new LogLevel(1, '#000091', '#8B8BFF'),\n  info: new LogLevel(2, '#007c3b', '#00ed70'),\n  warn: new LogLevel(3, '#ba4500', '#fa5c00', 'warn'),\n  error: new LogLevel(4, '#D80600', '#FF4641', 'error')\n};\n\nclass Inspector {\n  constructor () {\n    this.level = 2;\n\n    for (const id in LEVELS) {\n      const level = LEVELS[id];\n      this[id] = (...msgs) => {\n        if (this.level <= level.level) level.log.apply(level, msgs);\n      };\n      this[id].print = level.print.bind(level);\n    }\n  }\n\n  state () {\n    const message = new Message();\n    message.add(state);\n    this.log.print(message);\n  }\n\n  tree () {\n    const stage = state.getModule('stage');\n    if (!stage) return;\n    const message = new Message();\n    this._branch(stage.root, 0, message);\n    this.log.print(message);\n  }\n\n  _branch (element, space, message) {\n    let branch = '';\n    if (space > 0) {\n      let indent = '';\n      for (let i = 0; i < space; i++) indent += '    ';\n      // branch += indent + '|\\n';\n      branch += indent + '└─ ';\n    }\n    branch += `[${element.id}] ${element.html}`;\n    message.add(branch);\n    message.add({ '@': element });\n    message.add('\\n');\n    for (const child of element.children) branch += this._branch(child, space + 1, message);\n  }\n}\n\nconst inspector = new Inspector();\n\nexport default inspector;\n","export const startAtDomContentLoaded = (callback) => {\n  if (document.readyState !== 'loading') window.requestAnimationFrame(callback);\n  else document.addEventListener('DOMContentLoaded', callback);\n};\n\nexport const startAuto = (callback) => {\n  // detect\n  startAtDomContentLoaded(callback);\n};\n","export const Modes = {\n  AUTO: 'auto',\n  MANUAL: 'manual',\n  RUNTIME: 'runtime',\n  LOADED: 'loaded',\n  VUE: 'vue',\n  ANGULAR: 'angular',\n  REACT: 'react'\n};\n","import inspector from '../inspect/inspector.js';\nimport { startAtDomContentLoaded, startAuto } from './starters.js';\nimport config from '../../../config';\nimport { Modes } from './modes';\n\nclass Options {\n  constructor () {\n    this._mode = Modes.AUTO;\n    this.isStarted = false;\n    this.starting = this.start.bind(this);\n    this.preventManipulation = false;\n  }\n\n  configure (settings = {}, start, query) {\n    this.startCallback = start;\n    const isProduction = settings.production && (!query || query.production !== 'false');\n    switch (true) {\n      case query && !isNaN(query.level):\n        inspector.level = Number(query.level);\n        break;\n\n      case query && query.verbose && (query.verbose === 'true' || query.verbose === 1):\n        inspector.level = 0;\n        break;\n\n      case isProduction:\n        inspector.level = 999;\n        break;\n\n      case settings.verbose:\n        inspector.level = 0;\n        break;\n    }\n    inspector.info(`version ${config.version}`);\n    this.mode = settings.mode || Modes.AUTO;\n  }\n\n  set mode (value) {\n    switch (value) {\n      case Modes.AUTO:\n        this.preventManipulation = false;\n        startAuto(this.starting);\n        break;\n\n      case Modes.LOADED:\n        this.preventManipulation = false;\n        startAtDomContentLoaded(this.starting);\n        break;\n\n      case Modes.RUNTIME:\n        this.preventManipulation = false;\n        this.start();\n        break;\n\n      case Modes.MANUAL:\n        this.preventManipulation = false;\n        break;\n\n      case Modes.VUE:\n        this.preventManipulation = true;\n        break;\n\n      case Modes.ANGULAR:\n        this.preventManipulation = true;\n        break;\n\n      case Modes.REACT:\n        this.preventManipulation = true;\n        break;\n\n      default:\n        inspector.error('Illegal mode');\n        return;\n    }\n\n    this._mode = value;\n    inspector.info(`mode set to ${value}`);\n  }\n\n  get mode () {\n    return this._mode;\n  }\n\n  start () {\n    inspector.info('start');\n    this.startCallback();\n  }\n}\n\nconst options = new Options();\nexport default options;\n","class Collection {\n  constructor () {\n    this._collection = [];\n  }\n\n  forEach (callback) {\n    this._collection.forEach(callback);\n  }\n\n  map (callback) {\n    return this._collection.map(callback);\n  }\n\n  get length () {\n    return this._collection.length;\n  }\n\n  add (collectable) {\n    if (this._collection.indexOf(collectable) > -1) return false;\n    this._collection.push(collectable);\n    if (this.onAdd) this.onAdd();\n    if (this.onPopulate && this._collection.length === 1) this.onPopulate();\n    return true;\n  }\n\n  remove (collectable) {\n    const index = this._collection.indexOf(collectable);\n    if (index === -1) return false;\n    this._collection.splice(index, 1);\n    if (this.onRemove) this.onRemove();\n    if (this.onEmpty && this._collection.length === 0) this.onEmpty();\n  }\n\n  execute (...args) {\n    for (const collectable of this._collection) if (collectable) collectable.apply(null, args);\n  }\n\n  clear () {\n    this._collection.length = 0;\n  }\n\n  clone () {\n    const clone = new Collection();\n    clone._collection = this._collection.slice();\n    return clone;\n  }\n\n  get collection () {\n    return this._collection;\n  }\n}\n\nexport { Collection };\n","import { Collection } from '../utilities/collection.js';\n\nclass Module extends Collection {\n  constructor (type) {\n    super();\n    this.type = type;\n    this.isActive = false;\n  }\n\n  activate () {}\n  deactivate () {}\n}\n\nexport { Module };\n","import config from '../../../config.js';\n\nconst ns = name => `${config.prefix}-${name}`;\n\nns.selector = (name, notation) => {\n  if (notation === undefined) notation = '.';\n  return `${notation}${ns(name)}`;\n};\n\nns.attr = (name) => `data-${ns(name)}`;\n\nns.attr.selector = (name, value) => {\n  let result = ns.attr(name);\n  if (value !== undefined) result += `=\"${value}\"`;\n  return `[${result}]`;\n};\n\nns.event = (type) => `${config.namespace}.${type}`;\n\nns.emission = (domain, type) => `emission:${domain}.${type}`;\n\nexport default ns;\n","export const querySelectorAllArray = (element, selectors) => Array.prototype.slice.call(element.querySelectorAll(selectors));\n\nexport const queryParentSelector = (element, selectors) => {\n  const parent = element.parentElement;\n  if (parent.matches(selectors)) return parent;\n  if (parent === document.documentElement) return null;\n  return queryParentSelector(parent, selectors);\n};\n","import { Collection } from '../../utilities/collection.js';\nimport state from '../../state.js';\nimport ns from '../../utilities/namespace.js';\nimport { querySelectorAllArray } from '../../utilities/dom/query-selector';\n\nclass Registration {\n  constructor (selector, InstanceClass, creator) {\n    this.selector = selector;\n    this.InstanceClass = InstanceClass;\n    this.creator = creator;\n    this.instances = new Collection();\n    this.isIntroduced = false;\n    this._instanceClassName = this.InstanceClass.instanceClassName;\n    this._instanceClassNames = this.getInstanceClassNames(this.InstanceClass);\n    this._property = this._instanceClassName.substring(0, 1).toLowerCase() + this._instanceClassName.substring(1);\n    const dashed = this._instanceClassName\n      .replace(/[^a-zA-Z0-9]+/g, '-')\n      .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n      .replace(/([a-z])([A-Z])/g, '$1-$2')\n      .replace(/([0-9])([^0-9])/g, '$1-$2')\n      .replace(/([^0-9])([0-9])/g, '$1-$2')\n      .toLowerCase();\n    this._attribute = ns.attr(`js-${dashed}`);\n  }\n\n  getInstanceClassNames (InstanceClass) {\n    const prototype = Object.getPrototypeOf(InstanceClass);\n    if (!prototype || prototype.instanceClassName === 'Instance') return [InstanceClass.instanceClassName];\n    return [...this.getInstanceClassNames(prototype), InstanceClass.instanceClassName];\n  }\n\n  hasInstanceClassName (instanceClassName) {\n    return this._instanceClassNames.indexOf(instanceClassName) > -1;\n  }\n\n  introduce () {\n    if (this.isIntroduced) return;\n    this.isIntroduced = true;\n    state.getModule('stage').parse(document.documentElement, this);\n  }\n\n  parse (node, nonRecursive) {\n    const nodes = [];\n    if (node.matches && node.matches(this.selector)) nodes.push(node);\n    // eslint-disable-next-line no-useless-call\n    if (!nonRecursive && node.querySelectorAll && node.querySelector(this.selector)) nodes.push.apply(nodes, querySelectorAllArray(node, this.selector));\n    return nodes;\n  }\n\n  create (element) {\n    if (!element.node.matches(this.selector)) return;\n    const instance = new this.InstanceClass();\n    this.instances.add(instance);\n    return instance;\n  }\n\n  remove (instance) {\n    this.instances.remove(instance);\n  }\n\n  dispose () {\n    const instances = this.instances.collection;\n    for (let i = instances.length - 1; i > -1; i--) instances[i]._dispose();\n    this.creator = null;\n  }\n\n  get instanceClassName () {\n    return this._instanceClassName;\n  }\n\n  get instanceClassNames () {\n    return this._instanceClassNames;\n  }\n\n  get property () {\n    return this._property;\n  }\n\n  get attribute () {\n    return this._attribute;\n  }\n}\n\nexport { Registration };\n","import { Module } from '../module.js';\nimport { Registration } from './registration.js';\nimport state from '../../state.js';\n\nclass Register extends Module {\n  constructor () {\n    super('register');\n  }\n\n  register (selector, InstanceClass, creator) {\n    const registration = new Registration(selector, InstanceClass, creator);\n    this.add(registration);\n    if (state.isActive) registration.introduce();\n    return registration;\n  }\n\n  activate () {\n    for (const registration of this.collection) registration.introduce();\n  }\n\n  remove (registration) {\n    registration.dispose();\n    super.remove(registration);\n  }\n}\n\nexport { Register };\n","import state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\n\nlet count = 0;\n\nclass Element {\n  constructor (node, id) {\n    if (!id) {\n      count++;\n      this.id = count;\n    } else this.id = id;\n    this.node = node;\n    this.attributeNames = [];\n    this.instances = [];\n    this._children = [];\n    this._parent = null;\n    this._projects = [];\n  }\n\n  get proxy () {\n    const scope = this;\n    if (!this._proxy) {\n      this._proxy = {\n        id: this.id,\n        get parent () {\n          return scope.parent ? scope.parent.proxy : null;\n        },\n        get children () {\n          return scope.children.map((child) => child.proxy);\n        }\n      };\n\n      for (const instance of this.instances) this._proxy[instance.registration.property] = instance.proxy;\n    }\n    return this._proxy;\n  }\n\n  get html () {\n    if (!this.node || !this.node.outerHTML) return '';\n    const end = this.node.outerHTML.indexOf('>');\n    return this.node.outerHTML.substring(0, end + 1);\n  }\n\n  project (registration) {\n    if (this._projects.indexOf(registration) === -1) this._projects.push(registration);\n  }\n\n  populate () {\n    const projects = this._projects.slice();\n    this._projects.length = 0;\n    for (const registration of projects) this.create(registration);\n  }\n\n  create (registration) {\n    if (this.hasInstance(registration.instanceClassName)) {\n      // inspector.debug(`failed creation, instance of ${registration.instanceClassName} already exists on element [${this.id}]`);\n      return;\n    }\n    inspector.debug(`create instance of ${registration.instanceClassName} on element [${this.id}]`);\n    const instance = registration.create(this);\n    this.instances.push(instance);\n    instance._config(this, registration);\n    if (this._proxy) this._proxy[registration.property] = instance.proxy;\n  }\n\n  remove (instance) {\n    const index = this.instances.indexOf(instance);\n    if (index > -1) this.instances.splice(index, 1);\n    if (this._proxy) delete this._proxy[instance.registration.property];\n  }\n\n  get parent () {\n    return this._parent;\n  }\n\n  get ascendants () {\n    return [this.parent, ...this.parent.ascendants];\n  }\n\n  get children () {\n    return this._children;\n  }\n\n  get descendants () {\n    const descendants = [...this._children];\n    this._children.forEach(child => descendants.push(...child.descendants));\n    return descendants;\n  }\n\n  // TODO : emit ascendant et descendant de changement ?\n\n  addChild (child, index) {\n    if (this._children.indexOf(child) > -1) return null;\n    child._parent = this;\n    if (!isNaN(index) && index > -1 && index < this._children.length) this._children.splice(index, 0, child);\n    else this._children.push(child);\n    return child;\n  }\n\n  removeChild (child) {\n    const index = this._children.indexOf(child);\n    if (index === -1) return null;\n    child._parent = null;\n    this._children.splice(index, 1);\n  }\n\n  emit (type, data) {\n    const elements = state.getModule('stage').collection;\n    const response = [];\n    for (const element of elements) response.push(...element._emit(type, data));\n    return response;\n  }\n\n  _emit (type, data) {\n    const response = [];\n    for (const instance of this.instances) response.push(...instance._emitter.emit(type, data));\n    return response;\n  }\n\n  ascend (type, data) {\n    if (this._parent) return this._parent._ascend(type, data);\n    return [];\n  }\n\n  _ascend (type, data) {\n    const response = [];\n    for (const instance of this.instances) response.push(...instance._ascent.emit(type, data));\n    if (this._parent) response.push(...this._parent._ascend(type, data));\n    return response;\n  }\n\n  descend (type, data) {\n    const response = [];\n    for (const child of this._children) response.push(...child._descend(type, data));\n    return response;\n  }\n\n  _descend (type, data) {\n    const response = [];\n    for (const instance of this.instances) response.push(...instance._descent.emit(type, data));\n    for (const child of this._children) response.push(...child._descend(type, data));\n    return response;\n  }\n\n  getInstance (instanceClassName) {\n    for (const instance of this.instances) if (instance.registration.hasInstanceClassName(instanceClassName)) return instance;\n    return null;\n  }\n\n  hasInstance (instanceClassName) {\n    return this.getInstance(instanceClassName) !== null;\n  }\n\n  getDescendantInstances (instanceClassName, stopAtInstanceClassName, stopAtFirstInstance) {\n    if (!instanceClassName) return [];\n    const instances = [];\n    for (const child of this._children) {\n      const instance = child.getInstance(instanceClassName);\n      if (instance) {\n        instances.push(instance);\n        if (stopAtFirstInstance) continue;\n      }\n      if ((!stopAtInstanceClassName || !child.hasInstance(stopAtInstanceClassName)) && child.children.length) instances.push.apply(instances, child.getDescendantInstances(instanceClassName, stopAtInstanceClassName, stopAtFirstInstance));\n    }\n    return instances;\n  }\n\n  getAscendantInstance (instanceClassName, stopAtInstanceClassName) {\n    if (!instanceClassName || !this._parent) return null;\n    const instance = this._parent.getInstance(instanceClassName);\n    if (instance) return instance;\n    if (stopAtInstanceClassName && this._parent.hasInstance(stopAtInstanceClassName)) return null;\n    return this._parent.getAscendantInstance(instanceClassName, stopAtInstanceClassName);\n  }\n\n  dispose () {\n    for (let i = this.instances.length - 1; i >= 0; i--) {\n      const instance = this.instances[i];\n      if (instance) instance._dispose();\n    }\n    this.instances.length = 0;\n    state.remove('stage', this);\n    this.parent.removeChild(this);\n    this._children.length = 0;\n    inspector.debug(`remove element [${this.id}] ${this.html}`);\n  }\n\n  prepare (attributeName) {\n    if (this.attributeNames.indexOf(attributeName) === -1) this.attributeNames.push(attributeName);\n  }\n\n  examine () {\n    const attributeNames = this.attributeNames.slice();\n    this.attributeNames.length = 0;\n    for (let i = this.instances.length - 1; i > -1; i--) this.instances[i].examine(attributeNames);\n  }\n}\n\nexport { Element };\n","import ns from '../../utilities/namespace.js';\n\nexport const RootEmission = {\n  CLICK: ns.emission('root', 'click'),\n  KEYDOWN: ns.emission('root', 'keydown'),\n  KEYUP: ns.emission('root', 'keyup')\n};\n","export const KeyCodes = {\n  TAB: {\n    id: 'tab',\n    value: 9\n  },\n  ESCAPE: {\n    id: 'escape',\n    value: 27\n  },\n  END: {\n    id: 'end',\n    value: 35\n  },\n  HOME: {\n    id: 'home',\n    value: 36\n  },\n  LEFT: {\n    id: 'left',\n    value: 37\n  },\n  UP: {\n    id: 'up',\n    value: 38\n  },\n  RIGHT: {\n    id: 'right',\n    value: 39\n  },\n  DOWN: {\n    id: 'down',\n    value: 40\n  }\n};\n\nexport const getKeyCode = (keyCode) => Object.values(KeyCodes).filter(entry => entry.value === keyCode)[0];\n","import { Element } from './element.js';\nimport ns from '../../utilities/namespace.js';\nimport { RootEmission } from './root-emission';\nimport { getKeyCode } from '../register/key-codes';\n\nclass Root extends Element {\n  constructor () {\n    super(document.documentElement, 'root');\n    this.node.setAttribute(ns.attr('js'), true);\n    this.listen();\n  }\n\n  listen () {\n    // TODO v2 => listener au niveau des éléments qui redistribuent aux instances.\n    document.documentElement.addEventListener('click', this.click.bind(this), { capture: true });\n    document.documentElement.addEventListener('keydown', this.keydown.bind(this), { capture: true });\n    document.documentElement.addEventListener('keyup', this.keyup.bind(this), { capture: true });\n  }\n\n  click (e) {\n    this.emit(RootEmission.CLICK, e.target);\n  }\n\n  keydown (e) {\n    this.emit(RootEmission.KEYDOWN, getKeyCode(e.keyCode));\n  }\n\n  keyup (e) {\n    this.emit(RootEmission.KEYUP, getKeyCode(e.keyCode));\n  }\n}\n\nexport { Root };\n","import state from '../../state.js';\nimport { Element } from './element.js';\nimport { Module } from '../module.js';\nimport { Root } from './root.js';\nimport inspector from '../../inspect/inspector.js';\n\nclass Stage extends Module {\n  constructor () {\n    super('stage');\n    this.root = new Root();\n    super.add(this.root);\n    this.observer = new MutationObserver(this.mutate.bind(this));\n    this.modifications = [];\n    this.willModify = false;\n    this.modifying = this.modify.bind(this);\n  }\n\n  hasElement (node) {\n    for (const element of this.collection) if (element.node === node) return true;\n    return false;\n  }\n\n  getElement (node) {\n    for (const element of this.collection) if (element.node === node) return element;\n    const element = new Element(node);\n    this.add(element);\n    inspector.debug(`add element [${element.id}] ${element.html}`);\n    return element;\n  }\n\n  getProxy (node) {\n    if (!this.hasElement(node)) return null;\n    const element = this.getElement(node);\n    return element.proxy;\n  }\n\n  add (element) {\n    super.add(element);\n    this.put(element, this.root);\n  }\n\n  put (element, branch) {\n    let index = 0;\n    for (let i = branch.children.length - 1; i > -1; i--) {\n      const child = branch.children[i];\n      const position = element.node.compareDocumentPosition(child.node);\n      if (position & Node.DOCUMENT_POSITION_CONTAINS) {\n        this.put(element, child);\n        return;\n      } else if (position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n        branch.removeChild(child);\n        element.addChild(child, 0);\n      } else if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n        index = i + 1;\n        break;\n      }\n    }\n\n    branch.addChild(element, index);\n  }\n\n  activate () {\n    this.observer.observe(document.documentElement, { childList: true, subtree: true, attributes: true });\n  }\n\n  deactivate () {\n    this.observer.disconnect();\n  }\n\n  mutate (mutations) {\n    const examinations = [];\n    mutations.forEach((mutation) => {\n      switch (mutation.type) {\n        case 'childList':\n          mutation.removedNodes.forEach((node) => this.dispose(node));\n          mutation.addedNodes.forEach((node) => this.parse(node));\n          break;\n\n        case 'attributes':\n          if (this.hasElement(mutation.target)) {\n            const element = this.getElement(mutation.target);\n            element.prepare(mutation.attributeName);\n            if (examinations.indexOf(element) === -1) examinations.push(element);\n            for (const descendant of element.descendants) if (examinations.indexOf(descendant) === -1) examinations.push(descendant);\n          }\n          if (this.modifications.indexOf(mutation.target) === -1) this.modifications.push(mutation.target);\n          break;\n      }\n    });\n\n    examinations.forEach(element => element.examine());\n    if (this.modifications.length && !this.willModify) {\n      this.willModify = true;\n      window.requestAnimationFrame(this.modifying);\n    }\n  }\n\n  modify () {\n    this.willModify = false;\n    const targets = this.modifications.slice();\n    this.modifications.length = 0;\n    for (const target of targets) if (document.documentElement.contains(target)) this.parse(target);\n  }\n\n  dispose (node) {\n    const disposables = [];\n    this.forEach((element) => {\n      if (node.contains(element.node)) disposables.push(element);\n    });\n\n    for (const disposable of disposables) {\n      disposable.dispose();\n      this.remove(disposable);\n    }\n  }\n\n  parse (node, registration, nonRecursive) {\n    const registrations = registration ? [registration] : state.getModule('register').collection;\n    const creations = [];\n\n    for (const registration of registrations) {\n      const nodes = registration.parse(node, nonRecursive);\n\n      for (const n of nodes) {\n        const element = this.getElement(n);\n        element.project(registration);\n        if (creations.indexOf(element) === -1) creations.push(element);\n      }\n    }\n\n    for (const element of creations) element.populate();\n  }\n}\n\nexport { Stage };\n","import state from '../../state.js';\nimport { Module } from '../module.js';\nimport { Collection } from '../../utilities/collection.js';\n\nclass Renderer extends Module {\n  constructor () {\n    super('render');\n    this.rendering = this.render.bind(this);\n    this.nexts = new Collection();\n  }\n\n  activate () {\n    window.requestAnimationFrame(this.rendering);\n  }\n\n  request (instance) {\n    this.nexts.add(instance);\n  }\n\n  render () {\n    if (!state.isActive) return;\n    window.requestAnimationFrame(this.rendering);\n    this.forEach((instance) => instance.render());\n    if (!this.nexts.length) return;\n    const nexts = this.nexts.clone();\n    this.nexts.clear();\n    nexts.forEach((instance) => instance.next());\n  }\n}\n\nexport { Renderer };\n","import { Module } from '../module.js';\n\nclass Resizer extends Module {\n  constructor () {\n    super('resize');\n    this.requireResize = false;\n    this.resizing = this.resize.bind(this);\n    const requesting = this.request.bind(this);\n    if (document.fonts) {\n      document.fonts.ready.then(requesting);\n    }\n    window.addEventListener('resize', requesting);\n    window.addEventListener('orientationchange', requesting);\n  }\n\n  activate () {\n    this.request();\n  }\n\n  request () {\n    if (this.requireResize) return;\n    this.requireResize = true;\n    window.requestAnimationFrame(this.resizing);\n  }\n\n  resize () {\n    if (!this.requireResize) return;\n    this.forEach((instance) => instance.resize());\n    this.requireResize = false;\n  }\n}\n\nexport { Resizer };\n","import ns from '../../utilities/namespace.js';\nimport { Module } from '../module.js';\n\nclass ScrollLocker extends Module {\n  constructor () {\n    super('lock');\n    this._isLocked = false;\n    this._scrollY = 0;\n    this.onPopulate = this.lock.bind(this);\n    this.onEmpty = this.unlock.bind(this);\n  }\n\n  get isLocked () {\n    return this._isLocked;\n  }\n\n  lock () {\n    if (!this._isLocked) {\n      this._isLocked = true;\n      this._scrollY = window.scrollY;\n      const scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n      document.documentElement.setAttribute(ns.attr('scrolling'), 'false');\n      document.body.style.top = `${-this._scrollY}px`;\n      this.behavior = getComputedStyle(document.documentElement).getPropertyValue('scroll-behavior');\n      if (this.behavior === 'smooth') document.documentElement.style.scrollBehavior = 'auto';\n      if (scrollBarGap > 0) {\n        document.documentElement.style.setProperty('--scrollbar-width', `${scrollBarGap}px`);\n      }\n    }\n  }\n\n  unlock () {\n    if (this._isLocked) {\n      this._isLocked = false;\n      document.documentElement.removeAttribute(ns.attr('scrolling'));\n      document.body.style.top = '';\n      window.scrollTo(0, this._scrollY);\n      if (this.behavior === 'smooth') document.documentElement.style.removeProperty('scroll-behavior');\n      document.documentElement.style.removeProperty('--scrollbar-width');\n    }\n  }\n\n  move (value) {\n    if (this._isLocked) {\n      this._scrollY += value;\n      document.body.style.top = `${-this._scrollY}px`;\n    } else {\n      window.scrollTo(0, window.scrollY + value);\n    }\n  }\n}\n\nexport { ScrollLocker };\n","import { Module } from '../module.js';\n\nclass Load extends Module {\n  constructor () {\n    super('load');\n    this.loading = this.load.bind(this);\n  }\n\n  activate () {\n    window.addEventListener('load', this.loading);\n  }\n\n  load () {\n    this.forEach((instance) => instance.load());\n  }\n}\n\nexport { Load };\n","import { Module } from '../module.js';\n\nconst FONT_FAMILIES = ['Marianne', 'Spectral'];\n\nclass FontSwap extends Module {\n  constructor () {\n    super('font-swap');\n    this.swapping = this.swap.bind(this);\n  }\n\n  activate () {\n    if (document.fonts) {\n      document.fonts.addEventListener('loadingdone', this.swapping);\n    }\n  }\n\n  swap () {\n    const families = FONT_FAMILIES.filter(family => document.fonts.check(`16px ${family}`));\n\n    this.forEach((instance) => instance.swapFont(families));\n  }\n}\n\nexport { FontSwap };\n","import { Module } from '../module.js';\n\nclass MouseMove extends Module {\n  constructor () {\n    super('mouse-move');\n    this.requireMove = false;\n    this._isMoving = false;\n    this.moving = this.move.bind(this);\n    this.requesting = this.request.bind(this);\n    this.onPopulate = this.listen.bind(this);\n    this.onEmpty = this.unlisten.bind(this);\n  }\n\n  listen () {\n    if (this._isMoving) return;\n    this._isMoving = true;\n    this.requireMove = false;\n    document.documentElement.addEventListener('mousemove', this.requesting);\n  }\n\n  unlisten () {\n    if (!this._isMoving) return;\n    this._isMoving = false;\n    this.requireMove = false;\n    document.documentElement.removeEventListener('mousemove', this.requesting);\n  }\n\n  request (e) {\n    if (!this._isMoving) return;\n    this.point = { x: e.clientX, y: e.clientY };\n    if (this.requireMove) return;\n    this.requireMove = true;\n    window.requestAnimationFrame(this.moving);\n  }\n\n  move () {\n    if (!this.requireMove) return;\n    this.forEach((instance) => instance.mouseMove(this.point));\n    this.requireMove = false;\n  }\n}\n\nexport { MouseMove };\n","import { Module } from '../module.js';\n\nclass Hash extends Module {\n  constructor () {\n    super('hash');\n    this.handling = this.handle.bind(this);\n    this.getLocationHash();\n  }\n\n  activate () {\n    window.addEventListener('hashchange', this.handling);\n  }\n\n  deactivate () {\n    window.removeEventListener('hashchange', this.handling);\n  }\n\n  _sanitize (hash) {\n    if (hash.charAt(0) === '#') return hash.substring(1);\n    return hash;\n  }\n\n  set hash (value) {\n    const hash = this._sanitize(value);\n    if (this._hash !== hash) window.location.hash = hash;\n  }\n\n  get hash () {\n    return this._hash;\n  }\n\n  getLocationHash () {\n    const hash = window.location.hash;\n    this._hash = this._sanitize(hash);\n  }\n\n  handle (e) {\n    this.getLocationHash();\n    this.forEach((instance) => instance.handleHash(this._hash, e));\n  }\n}\n\nexport { Hash };\n","import { Register } from './modules/register/register.js';\nimport { Stage } from './modules/stage/stage.js';\nimport { Renderer } from './modules/render/renderer.js';\nimport { Resizer } from './modules/resize/resizer.js';\nimport { ScrollLocker } from './modules/scroll/scroll-locker.js';\nimport { Load } from './modules/load/load.js';\nimport { FontSwap } from './modules/font-swap/font-swap';\nimport { MouseMove } from './modules/mouse-move/mouse-move';\nimport { Hash } from './modules/hash/hash';\nimport inspector from './inspect/inspector.js';\nimport state from './state.js';\n\nclass Engine {\n  constructor () {\n    state.create(Register);\n    state.create(Stage);\n    state.create(Renderer);\n    state.create(Resizer);\n    state.create(ScrollLocker);\n    state.create(Load);\n    state.create(FontSwap);\n    state.create(MouseMove);\n    state.create(Hash);\n\n    const registerModule = state.getModule('register');\n    this.register = registerModule.register.bind(registerModule);\n  }\n\n  get isActive () {\n    return state.isActive;\n  }\n\n  start () {\n    inspector.debug('START');\n    state.isActive = true;\n  }\n\n  stop () {\n    inspector.debug('STOP');\n    state.isActive = false;\n  }\n}\n\nconst engine = new Engine();\nexport default engine;\n","class Colors {\n  getColor (context, use, tint, options = {}) {\n    const option = getOption(options);\n    const decision = `--${context}-${use}-${tint}${option}`;\n    return getComputedStyle(document.documentElement).getPropertyValue(decision).trim() || null;\n  }\n}\n\nconst getOption = (options) => {\n  switch (true) {\n    case options.hover:\n      return '-hover';\n    case options.active:\n      return '-active';\n    default:\n      return '';\n  }\n};\n\nconst colors = new Colors();\n\nexport default colors;\n","const sanitize = (className) => className.charAt(0) === '.' ? className.substr(1) : className;\n\nconst getClassNames = (element) => {\n  switch (true) {\n    case !element.className:\n      return [];\n\n    case typeof element.className === 'string':\n      return element.className.split(' ');\n\n    case typeof element.className.baseVal === 'string':\n      return element.className.baseVal.split(' ');\n  }\n\n  return [];\n};\n\nexport { getClassNames };\n\nconst modifyClass = (element, className, remove) => {\n  className = sanitize(className);\n  const classNames = getClassNames(element);\n  const index = classNames.indexOf(className);\n  if (remove === true) {\n    if (index > -1) classNames.splice(index, 1);\n  } else if (index === -1) classNames.push(className);\n  element.className = classNames.join(' ');\n};\n\nconst addClass = (element, className) => modifyClass(element, className);\n\nexport { addClass };\n\nconst removeClass = (element, className) => modifyClass(element, className, true);\n\nexport { removeClass };\n\nconst hasClass = (element, className) => getClassNames(element).indexOf(sanitize(className)) > -1;\n\nexport { hasClass };\n","const ACTIONS = [\n  '[tabindex]:not([tabindex=\"-1\"])',\n  'a[href]',\n  'button:not([disabled])',\n  'input:not([disabled])',\n  'select:not([disabled])',\n  'textarea:not([disabled])',\n  'audio[controls]',\n  'video[controls]',\n  '[contenteditable]:not([contenteditable=\"false\"])',\n  'details>summary:first-of-type',\n  'details',\n  'iframe'\n];\n\nconst ACTIONS_SELECTOR = ACTIONS.join();\n\nexport const queryActions = (element) => {\n  return element.querySelectorAll(ACTIONS_SELECTOR);\n};\n","let counter = 0;\n\nexport const uniqueId = (id) => {\n  if (!document.getElementById(id)) return id;\n  let element = true;\n  const base = id;\n  while (element) {\n    counter++;\n    id = `${base}-${counter}`;\n    element = document.getElementById(id);\n  }\n  return id;\n};\n","import { addClass, hasClass, removeClass } from './classes.js';\nimport { queryParentSelector, querySelectorAllArray } from './query-selector.js';\nimport { queryActions } from './actions';\nimport { uniqueId } from './id';\n\nconst dom = {\n  addClass: addClass,\n  hasClass: hasClass,\n  removeClass: removeClass,\n  queryParentSelector: queryParentSelector,\n  querySelectorAllArray: querySelectorAllArray,\n  queryActions: queryActions,\n  uniqueId: uniqueId\n};\n\nexport default dom;\n","class DataURISVG {\n  constructor (width = 0, height = 0) {\n    this._width = width;\n    this._height = height;\n    this._content = '';\n  }\n\n  get width () {\n    return this._width;\n  }\n\n  set width (value) {\n    this._width = value;\n  }\n\n  get height () {\n    return this._height;\n  }\n\n  set height (value) {\n    this._height = value;\n  }\n\n  get content () {\n    return this._content;\n  }\n\n  set content (value) {\n    this._content = value;\n  }\n\n  getDataURI (isLegacy = false) {\n    let svg = `<svg xmlns='http://www.w3.org/2000/svg' viewbox='0 0 ${this._width} ${this._height}' width='${this._width}px' height='${this._height}px'>${this._content}</svg>`;\n\n    svg = svg.replace(/#/gi, '%23');\n    if (isLegacy) {\n      svg = svg.replace(/</gi, '%3C');\n      svg = svg.replace(/>/gi, '%3E');\n      svg = svg.replace(/\"/gi, '\\'');\n      svg = svg.replace(/{/gi, '%7B');\n      svg = svg.replace(/}/gi, '%7D');\n    }\n    return `data:image/svg+xml;charset=utf8,${svg}`;\n  }\n}\n\nexport { DataURISVG };\n","import { DataURISVG } from './data-uri-svg';\n\nconst image = {\n  DataURISVG: DataURISVG\n};\n\nexport default image;\n","const supportLocalStorage = () => {\n  try {\n    return 'localStorage' in window && window.localStorage !== null;\n  } catch (e) {\n    return false;\n  }\n};\n\nconst supportAspectRatio = () => {\n  if (!window.CSS) return false;\n  return CSS.supports('aspect-ratio: 16 / 9');\n};\n\nexport { supportLocalStorage, supportAspectRatio };\n","import { supportLocalStorage, supportAspectRatio } from './browser-support.js';\n\nconst support = {\n  supportLocalStorage: supportLocalStorage,\n  supportAspectRatio: supportAspectRatio\n};\n\nexport default support;\n","import ns from '../namespace.js';\n\nexport const TransitionSelector = {\n  NONE: ns.selector('transition-none')\n};\n","import { TransitionSelector } from './transition-selector';\n\nconst selector = {\n  TransitionSelector: TransitionSelector\n};\n\nexport default selector;\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 { completeAssign } from './complete-assign';\n\nconst property = {\n  completeAssign: completeAssign\n};\n\nexport default property;\n","/**\n * Return an object of query params or null\n *\n * @method\n * @name searchParams\n * @param {string} url - an url\n * @returns {Object} object of query params or null\n */\n\nconst searchParams = (url) => {\n  if (url && url.search) {\n    const params = new URLSearchParams(window.location.search);\n    const entries = params.entries();\n    return Object.fromEntries(entries);\n  }\n  return null;\n};\n\nexport default searchParams;\n","import state from './state.js';\nimport engine from './engine.js';\nimport options from './options/options.js';\nimport dom from './utilities/dom/index';\nimport image from './utilities/image/index';\nimport ns from './utilities/namespace.js';\nimport support from './utilities/support/index';\nimport motion from './utilities/motion/index';\nimport property from './utilities/property/index';\nimport searchParams from './utilities/search-params/index.js';\n\nconst internals = {};\nconst legacy = {};\n\nObject.defineProperty(legacy, 'isLegacy', {\n  get: () => state.isLegacy\n});\n\nlegacy.setLegacy = () => {\n  state.isLegacy = true;\n};\n\ninternals.legacy = legacy;\ninternals.dom = dom;\ninternals.image = image;\ninternals.support = support;\ninternals.motion = motion;\ninternals.property = property;\ninternals.ns = ns;\ninternals.register = engine.register;\ninternals.state = state;\ninternals.query = searchParams(window.location);\n\nObject.defineProperty(internals, 'preventManipulation', {\n  get: () => options.preventManipulation\n});\nObject.defineProperty(internals, 'stage', {\n  get: () => state.getModule('stage')\n});\n\nexport default internals;\n","import state from './state.js';\nimport options from './options/options.js';\nimport { Modes } from './options/modes.js';\nimport config from '../../config.js';\nimport engine from './engine.js';\nimport inspector from './inspect/inspector.js';\nimport colors from './utilities/colors/colors.js';\nimport internals from './internals.js';\n\nconst api = (node) => {\n  const stage = state.getModule('stage');\n  return stage.getProxy(node);\n};\n\napi.version = config.version;\napi.prefix = config.prefix;\napi.organisation = config.organisation;\napi.Modes = Modes;\n\nObject.defineProperty(api, 'mode', {\n  set: (value) => { options.mode = value; },\n  get: () => options.mode\n});\n\napi.internals = internals;\napi.version = config.version;\n\napi.start = engine.start;\napi.stop = engine.stop;\n\napi.inspector = inspector;\napi.colors = colors;\n\nconst configuration = window[config.namespace];\napi.internals.configuration = configuration;\n\noptions.configure(configuration, api.start, api.internals.query);\n\nwindow[config.namespace] = api;\nexport default api;\n","class Emitter {\n  constructor () {\n    this.emissions = {};\n  }\n\n  add (type, closure) {\n    if (typeof closure !== 'function') throw new Error('closure must be a function');\n    if (!this.emissions[type]) this.emissions[type] = [];\n    this.emissions[type].push(closure);\n  }\n\n  remove (type, closure) {\n    if (!this.emissions[type]) return;\n    if (!closure) delete this.emissions[type];\n    else {\n      const index = this.emissions[type].indexOf(closure);\n      if (index > -1) this.emissions[type].splice(index);\n    }\n  }\n\n  emit (type, data) {\n    if (!this.emissions[type]) return [];\n    const response = [];\n    for (const closure of this.emissions[type]) if (closure) response.push(closure(data));\n    return response;\n  }\n\n  dispose () {\n    this.emissions = null;\n  }\n}\n\nexport { Emitter };\n","class Breakpoint {\n  constructor (id, minWidth) {\n    this.id = id;\n    this.minWidth = minWidth;\n  }\n\n  test () {\n    return window.matchMedia(`(min-width: ${this.minWidth}em)`).matches;\n  }\n}\n\nexport const Breakpoints = {\n  XS: new Breakpoint('xs', 0),\n  SM: new Breakpoint('sm', 36),\n  MD: new Breakpoint('md', 48),\n  LG: new Breakpoint('lg', 62),\n  XL: new Breakpoint('xl', 78)\n};\n","import { Emitter } from '../../utilities/emitter.js';\nimport state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\nimport { Breakpoints } from './breakpoints.js';\nimport { addClass, removeClass, hasClass, getClassNames } from '../../utilities/dom/classes.js';\nimport { uniqueId } from '../../utilities/dom/id';\nimport { completeAssign } from '../../utilities/property/complete-assign.js';\nimport { queryParentSelector, querySelectorAllArray } from '../../utilities/dom/query-selector.js';\nimport { queryActions } from '../../utilities/dom/actions.js';\n\nclass Instance {\n  constructor (jsAttribute = true) {\n    this.jsAttribute = jsAttribute;\n    this._isRendering = false;\n    this._isResizing = false;\n    this._isScrollLocked = false;\n    this._isLoading = false;\n    this._isSwappingFont = false;\n    this._isEnabled = true;\n    this._isDisposed = false;\n    this._listeners = {};\n    this._handlingClick = this.handleClick.bind(this);\n    this._hashes = [];\n    this._hash = '';\n    this._keyListenerTypes = [];\n    this._keys = [];\n    this.handlingKey = this.handleKey.bind(this);\n    this._emitter = new Emitter();\n    this._ascent = new Emitter();\n    this._descent = new Emitter();\n    this._registrations = [];\n    this._nexts = [];\n  }\n\n  static get instanceClassName () {\n    return 'Instance';\n  }\n\n  _config (element, registration) {\n    this.element = element;\n    this.registration = registration;\n    this.node = element.node;\n    this.id = element.node.id;\n    if (this.jsAttribute) this.setAttribute(registration.attribute, true);\n    this.init();\n  }\n\n  init () {}\n\n  get proxy () {\n    const scope = this;\n    const proxy = {\n      render: () => scope.render(),\n      resize: () => scope.resize()\n    };\n\n    const proxyAccessors = {\n      get node () {\n        return this.node;\n      },\n      get isEnabled () {\n        return scope.isEnabled;\n      },\n      set isEnabled (value) {\n        scope.isEnabled = value;\n      }\n    };\n\n    return completeAssign(proxy, proxyAccessors);\n  }\n\n  log (...values) {\n    values.unshift(`${this.registration.instanceClassName} #${this.id} - `);\n    inspector.log.apply(inspector, values);\n  }\n\n  debug (...values) {\n    values.unshift(`${this.registration.instanceClassName} #${this.id} - `);\n    inspector.debug.apply(inspector, values);\n  }\n\n  info (...values) {\n    values.unshift(`${this.registration.instanceClassName} #${this.id} - `);\n    inspector.info.apply(inspector, values);\n  }\n\n  warn (...values) {\n    values.unshift(`${this.registration.instanceClassName} #${this.id} - `);\n    inspector.warn.apply(inspector, values);\n  }\n\n  error (...values) {\n    values.unshift(`${this.registration.instanceClassName} #${this.id} - `);\n    inspector.error.apply(inspector, values);\n  }\n\n  register (selector, InstanceClass) {\n    const registration = state.getModule('register').register(selector, InstanceClass, this);\n    this._registrations.push(registration);\n  }\n\n  getRegisteredInstances (instanceClassName) {\n    for (const registration of this._registrations) if (registration.hasInstanceClassName(instanceClassName)) return registration.instances.collection;\n    return [];\n  }\n\n  dispatch (type, detail, bubbles, cancelable) {\n    const event = new CustomEvent(type, { detail: detail, bubble: bubbles === true, cancelable: cancelable === true });\n    this.node.dispatchEvent(event);\n  }\n\n  // TODO v2 => listener au niveau des éléments qui redistribuent aux instances.\n  listen (type, closure, options) {\n    if (!this._listeners[type]) this._listeners[type] = [];\n    const listeners = this._listeners[type];\n    // if (listeners.some(listener => listener.closure === closure)) return;\n    const listener = new Listener(this.node, type, closure, options);\n    listeners.push(listener);\n    listener.listen();\n  }\n\n  unlisten (type, closure, options) {\n    if (!type) {\n      for (const type in this._listeners) this.unlisten(type);\n      return;\n    }\n\n    const listeners = this._listeners[type];\n\n    if (!listeners) return;\n\n    if (!closure) {\n      listeners.forEach(listener => this.unlisten(type, listener.closure));\n      return;\n    }\n\n    const removal = listeners.filter(listener => listener.closure === closure && listener.matchOptions(options));\n    removal.forEach(listener => listener.unlisten());\n    this._listeners[type] = listeners.filter(listener => removal.indexOf(listener) === -1);\n  }\n\n  listenClick (options) {\n    this.listen('click', this._handlingClick, options);\n  }\n\n  unlistenClick (options) {\n    this.unlisten('click', this._handlingClick, options);\n  }\n\n  handleClick (e) {}\n\n  set hash (value) {\n    state.getModule('hash').hash = value;\n  }\n\n  get hash () {\n    return state.getModule('hash').hash;\n  }\n\n  listenHash (hash, add) {\n    if (!this._hashes) return;\n    if (this._hashes.length === 0) state.add('hash', this);\n    const action = new HashAction(hash, add);\n    this._hashes = this._hashes.filter(action => action.hash !== hash);\n    this._hashes.push(action);\n  }\n\n  unlistenHash (hash) {\n    if (!this._hashes) return;\n    this._hashes = this._hashes.filter(action => action.hash !== hash);\n    if (this._hashes.length === 0) state.remove('hash', this);\n  }\n\n  handleHash (hash, e) {\n    if (!this._hashes) return;\n    for (const action of this._hashes) action.handle(hash, e);\n  }\n\n  listenKey (keyCode, closure, preventDefault = false, stopPropagation = false, type = 'down') {\n    if (this._keyListenerTypes.indexOf(type) === -1) {\n      this.listen(`key${type}`, this.handlingKey);\n      this._keyListenerTypes.push(type);\n    }\n\n    this._keys.push(new KeyAction(type, keyCode, closure, preventDefault, stopPropagation));\n  }\n\n  unlistenKey (code, closure) {\n    this._keys = this._keys.filter((key) => key.code !== code || key.closure !== closure);\n\n    this._keyListenerTypes.forEach(type => {\n      if (!this._keys.some(key => key.type === type)) this.unlisten(`key${type}`, this.handlingKey);\n    });\n  }\n\n  handleKey (e) {\n    for (const key of this._keys) key.handle(e);\n  }\n\n  get isEnabled () { return this._isEnabled; }\n\n  set isEnabled (value) {\n    this._isEnabled = value;\n  }\n\n  get isRendering () { return this._isRendering; }\n\n  set isRendering (value) {\n    if (this._isRendering === value) return;\n    if (value) state.add('render', this);\n    else state.remove('render', this);\n    this._isRendering = value;\n  }\n\n  render () {}\n\n  request (closure) {\n    this._nexts.push(closure);\n    state.getModule('render').request(this);\n  }\n\n  next () {\n    const nexts = this._nexts.slice();\n    this._nexts.length = 0;\n    for (const closure of nexts) if (closure) closure();\n  }\n\n  get isResizing () { return this._isResizing; }\n\n  set isResizing (value) {\n    if (this._isResizing === value) return;\n    if (value) {\n      state.add('resize', this);\n      this.resize();\n    } else state.remove('resize', this);\n    this._isResizing = value;\n  }\n\n  resize () {}\n\n  isBreakpoint (breakpoint) {\n    switch (true) {\n      case typeof breakpoint === 'string':\n        return Breakpoints[breakpoint.toUpperCase()].test();\n\n      default:\n        return breakpoint.test();\n    }\n  }\n\n  get isScrollLocked () {\n    return this._isScrollLocked;\n  }\n\n  set isScrollLocked (value) {\n    if (this._isScrollLocked === value) return;\n    if (value) state.add('lock', this);\n    else state.remove('lock', this);\n    this._isScrollLocked = value;\n  }\n\n  get isLoading () {\n    return this._isLoading;\n  }\n\n  set isLoading (value) {\n    if (this._isLoading === value) return;\n    if (value) state.add('load', this);\n    else state.remove('load', this);\n    this._isLoading = value;\n  }\n\n  load () {}\n\n  get isSwappingFont () {\n    return this._isSwappingFont;\n  }\n\n  set isSwappingFont (value) {\n    if (this._isSwappingFont === value) return;\n    if (value) state.add('font-swap', this);\n    else state.remove('font-swap', this);\n    this._isSwappingFont = value;\n  }\n\n  swapFont () {}\n\n  get isMouseMoving () { return this._isMouseMoving; }\n\n  set isMouseMoving (value) {\n    if (this._isMouseMoving === value) return;\n    if (value) {\n      state.add('mouse-move', this);\n    } else {\n      state.remove('mouse-move', this);\n    }\n    this._isMouseMoving = value;\n  }\n\n  mouseMove (point) {}\n\n  examine (attributeNames) {\n    if (!this.node.matches(this.registration.selector)) {\n      this._dispose();\n      return;\n    }\n\n    this.mutate(attributeNames);\n  }\n\n  mutate (attributeNames) {}\n\n  retrieveNodeId (node, append) {\n    if (node.id) return node.id;\n    const id = uniqueId(`${this.id}-${append}`);\n    this.warn(`add id '${id}' to ${append}`);\n    node.setAttribute('id', id);\n    return id;\n  }\n\n  get isDisposed () {\n    return this._isDisposed;\n  }\n\n  _dispose () {\n    this.debug(`dispose instance of ${this.registration.instanceClassName} on element [${this.element.id}]`);\n    this.removeAttribute(this.registration.attribute);\n    this.unlisten();\n    state.remove('hash', this);\n    this._hashes = null;\n    this._keys = null;\n    this.isRendering = false;\n    this.isResizing = false;\n    this._nexts = null;\n    state.getModule('render').nexts.remove(this);\n    this.isScrollLocked = false;\n    this.isLoading = false;\n    this.isSwappingFont = false;\n    this.isMouseMoving = false;\n    this._emitter.dispose();\n    this._emitter = null;\n    this._ascent.dispose();\n    this._ascent = null;\n    this._descent.dispose();\n    this._descent = null;\n    this.element.remove(this);\n    for (const registration of this._registrations) state.remove('register', registration);\n    this._registrations = null;\n    this.registration.remove(this);\n    this._isDisposed = true;\n    this.dispose();\n  }\n\n  dispose () {}\n\n  emit (type, data) {\n    return this.element.emit(type, data);\n  }\n\n  addEmission (type, closure) {\n    this._emitter.add(type, closure);\n  }\n\n  removeEmission (type, closure) {\n    this._emitter.remove(type, closure);\n  }\n\n  ascend (type, data) {\n    return this.element.ascend(type, data);\n  }\n\n  addAscent (type, closure) {\n    this._ascent.add(type, closure);\n  }\n\n  removeAscent (type, closure) {\n    this._ascent.remove(type, closure);\n  }\n\n  descend (type, data) {\n    return this.element.descend(type, data);\n  }\n\n  addDescent (type, closure) {\n    this._descent.add(type, closure);\n  }\n\n  removeDescent (type, closure) {\n    this._descent.remove(type, closure);\n  }\n\n  get style () {\n    return this.node.style;\n  }\n\n  addClass (className) {\n    addClass(this.node, className);\n  }\n\n  removeClass (className) {\n    removeClass(this.node, className);\n  }\n\n  hasClass (className) {\n    return hasClass(this.node, className);\n  }\n\n  get classNames () {\n    return getClassNames(this.node);\n  }\n\n  remove () {\n    this.node.parentNode.removeChild(this.node);\n  }\n\n  setAttribute (attributeName, value) {\n    this.node.setAttribute(attributeName, value);\n  }\n\n  getAttribute (attributeName) {\n    return this.node.getAttribute(attributeName);\n  }\n\n  hasAttribute (attributeName) {\n    return this.node.hasAttribute(attributeName);\n  }\n\n  removeAttribute (attributeName) {\n    this.node.removeAttribute(attributeName);\n  }\n\n  setProperty (propertyName, value) {\n    this.node.style.setProperty(propertyName, value);\n  }\n\n  removeProperty (propertyName) {\n    this.node.style.removeProperty(propertyName);\n  }\n\n  focus () {\n    this.node.focus();\n  }\n\n  blur () {\n    this.node.blur();\n  }\n\n  focusClosest () {\n    const closest = this._focusClosest(this.node.parentNode);\n    if (closest) closest.focus();\n  }\n\n  _focusClosest (parent) {\n    if (!parent) return null;\n    const actions = [...queryActions(parent)];\n    if (actions.length <= 1) {\n      return this._focusClosest(parent.parentNode);\n    } else {\n      const index = actions.indexOf(this.node);\n      return actions[index + (index < actions.length - 1 ? 1 : -1)];\n    }\n  }\n\n  get hasFocus () {\n    return this.node === document.activeElement;\n  }\n\n  scrollIntoView () {\n    const rect = this.getRect();\n\n    const scroll = state.getModule('lock');\n\n    if (rect.top < 0) {\n      scroll.move(rect.top - 50);\n    }\n\n    if (rect.bottom > window.innerHeight) {\n      scroll.move(rect.bottom - window.innerHeight + 50);\n    }\n  }\n\n  matches (selectors) {\n    return this.node.matches(selectors);\n  }\n\n  querySelector (selectors) {\n    return this.node.querySelector(selectors);\n  }\n\n  querySelectorAll (selectors) {\n    return querySelectorAllArray(this.node, selectors);\n  }\n\n  queryParentSelector (selectors) {\n    return queryParentSelector(this.node, selectors);\n  }\n\n  getRect () {\n    const rect = this.node.getBoundingClientRect();\n    rect.center = rect.left + rect.width * 0.5;\n    rect.middle = rect.top + rect.height * 0.5;\n    return rect;\n  }\n\n  get isLegacy () {\n    return state.isLegacy;\n  }\n}\n\nclass KeyAction {\n  constructor (type, keyCode, closure, preventDefault, stopPropagation) {\n    this.type = type;\n    this.eventType = `key${type}`;\n    this.keyCode = keyCode;\n    this.closure = closure;\n    this.preventDefault = preventDefault === true;\n    this.stopPropagation = stopPropagation === true;\n  }\n\n  handle (e) {\n    if (e.type !== this.eventType) return;\n    if (e.keyCode === this.keyCode.value) {\n      this.closure(e);\n      if (this.preventDefault) {\n        e.preventDefault();\n      }\n      if (this.stopPropagation) {\n        e.stopPropagation();\n      }\n    }\n  }\n}\n\nclass Listener {\n  constructor (node, type, closure, options) {\n    this._node = node;\n    this._type = type;\n    this._closure = closure;\n    this._options = options;\n  }\n\n  get closure () {\n    return this._closure;\n  }\n\n  listen () {\n    this._node.addEventListener(this._type, this._closure, this._options);\n  }\n\n  matchOptions (options = null) {\n    switch (true) {\n      case options === null:\n      case typeof this._options === 'boolean' && typeof options === 'boolean' && this._options === options:\n        return true;\n\n      case Object.keys(this._options).length !== Object.keys(options).length:\n        return false;\n\n      case Object.keys(options).every(key => this._options[key] === options[key]):\n        return true;\n    }\n\n    return false;\n  }\n\n  unlisten () {\n    this._node.removeEventListener(this._type, this._closure, this._options);\n  }\n}\n\nclass HashAction {\n  constructor (hash, add) {\n    this.hash = hash;\n    this.add = add;\n  }\n\n  handle (hash, e) {\n    if (this.hash === hash) this.add(e);\n  }\n}\n\nexport { Instance };\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEvent = {\n  DISCLOSE: ns.event('disclose'),\n  CONCEAL: ns.event('conceal')\n};\n\nexport { DisclosureEvent };\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEmission = {\n  RESET: ns.emission('disclosure', 'reset'),\n  ADDED: ns.emission('disclosure', 'added'),\n  RETRIEVE: ns.emission('disclosure', 'retrieve'),\n  REMOVED: ns.emission('disclosure', 'removed'),\n  GROUP: ns.emission('disclosure', 'group'),\n  UNGROUP: ns.emission('disclosure', 'ungroup'),\n  SPOTLIGHT: ns.emission('disclosure', 'spotlight')\n};\n\nexport { DisclosureEmission };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEvent } from './disclosure-event.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass Disclosure extends Instance {\n  constructor (type, selector, DisclosureButtonInstanceClass, disclosuresGroupInstanceClassName) {\n    super();\n    this.type = type;\n    this._selector = selector;\n    this.DisclosureButtonInstanceClass = DisclosureButtonInstanceClass;\n    this.disclosuresGroupInstanceClassName = disclosuresGroupInstanceClassName;\n    this.modifier = this._selector + '--' + this.type.id;\n    this._isPristine = true;\n    this._isRetrievingPrimaries = false;\n    this._hasRetrieved = false;\n    this._primaryButtons = [];\n  }\n\n  static get instanceClassName () {\n    return 'Disclosure';\n  }\n\n  init () {\n    this.addDescent(DisclosureEmission.RESET, this.reset.bind(this));\n    this.addDescent(DisclosureEmission.GROUP, this.update.bind(this));\n    this.addDescent(DisclosureEmission.UNGROUP, this.update.bind(this));\n    this.addAscent(DisclosureEmission.SPOTLIGHT, this.disclose.bind(this));\n    this.register(`[aria-controls=\"${this.id}\"]`, this.DisclosureButtonInstanceClass);\n    this.ascend(DisclosureEmission.ADDED);\n    this.listenHash(this.id, this._spotlight.bind(this));\n    this.update();\n  }\n\n  get isEnabled () { return super.isEnabled; }\n\n  set isEnabled (value) {\n    if (this.isEnabled === value) return;\n    super.isEnabled = value;\n    if (value) this.ascend(DisclosureEmission.ADDED);\n    else this.ascend(DisclosureEmission.REMOVED);\n  }\n\n  get isPristine () {\n    return this._isPristine;\n  }\n\n  get proxy () {\n    const scope = this;\n    const proxy = Object.assign(super.proxy, {\n      disclose: scope.disclose.bind(scope),\n      focus: scope.focus.bind(scope)\n    });\n\n    if (this.type.canConceal) proxy.conceal = scope.conceal.bind(scope);\n\n    const proxyAccessors = {\n      get buttons () {\n        return scope.buttons.map((button) => button.proxy);\n      },\n      get group () {\n        const group = scope.group;\n        return group ? group.proxy : null;\n      },\n      get isDisclosed () {\n        return scope.isDisclosed;\n      }\n    };\n\n    return completeAssign(proxy, proxyAccessors);\n  }\n\n  get buttons () {\n    return this.getRegisteredInstances(this.DisclosureButtonInstanceClass.instanceClassName);\n  }\n\n  update () {\n    this.getGroup();\n    this.retrievePrimaries();\n  }\n\n  getGroup () {\n    if (!this.disclosuresGroupInstanceClassName) {\n      this._group = null;\n      return;\n    }\n\n    const group = this.element.getAscendantInstance(this.disclosuresGroupInstanceClassName, this.constructor.instanceClassName);\n    if (!group || !group.validate(this)) {\n      this._group = null;\n      return;\n    }\n\n    this._group = group;\n  }\n\n  get group () {\n    return this._group;\n  }\n\n  disclose (withhold) {\n    if (this.isDisclosed === true || !this.isEnabled) return false;\n    this._isPristine = false;\n    this.isDisclosed = true;\n    if (!withhold && this.group) this.group.current = this;\n    return true;\n  }\n\n  conceal (withhold, preventFocus = true) {\n    if (this.isDisclosed === false) return false;\n    if (!this.type.canConceal && this.group && this.group.current === this) return false;\n    this.isDisclosed = false;\n    if (!withhold && this.group && this.group.current === this) this.group.current = null;\n    if (!preventFocus) this.focus();\n    if (!this._isPristine) this.descend(DisclosureEmission.RESET);\n    return true;\n  }\n\n  get isDisclosed () {\n    return this._isDisclosed;\n  }\n\n  set isDisclosed (value) {\n    if (this._isDisclosed === value || (!this.isEnabled && value === true)) return;\n    this.dispatch(value ? DisclosureEvent.DISCLOSE : DisclosureEvent.CONCEAL, this.type);\n    this._isDisclosed = value;\n    if (value) this.addClass(this.modifier);\n    else this.removeClass(this.modifier);\n    for (let i = 0; i < this.buttons.length; i++) this.buttons[i].apply(value);\n  }\n\n  get isInitiallyDisclosed () {\n    return this.primaryButtons.some(button => button.isInitiallyDisclosed);\n  }\n\n  hasRetrieved () {\n    return this._hasRetrieved;\n  }\n\n  reset () {}\n\n  toggle (canDisclose) {\n    if (!this.type.canConceal) this.disclose();\n    else {\n      switch (true) {\n        case !canDisclose:\n        case this.isDisclosed:\n          this.conceal(false, false);\n          break;\n\n        default:\n          this.disclose();\n      }\n    }\n  }\n\n  get buttonHasFocus () {\n    return this.buttons.some((button) => { return button.hasFocus; });\n  }\n\n  get hasFocus () {\n    if (super.hasFocus) return true;\n    if (this.buttonHasFocus) return true;\n    return this.querySelectorAll(':focus').length > 0;\n  }\n\n  focus () {\n    if (this._primaryButtons.length > 0) this._primaryButtons[0].focus();\n  }\n\n  get primaryButtons () {\n    return this._primaryButtons;\n  }\n\n  retrievePrimaries () {\n    if (this._isRetrievingPrimaries) return;\n    this._isRetrievingPrimaries = true;\n    this.request(this._retrievePrimaries.bind(this));\n  }\n\n  _retrievePrimaries () {\n    this._isRetrievingPrimaries = false;\n    this._primaryButtons = this._electPrimaries(this.buttons);\n\n    if (this._hasRetrieved || this._primaryButtons.length === 0) return;\n    this.retrieved();\n    this._hasRetrieved = true;\n\n    this.applyAbility(true);\n\n    if (this.group) {\n      this.group.retrieve();\n      return;\n    }\n\n    if (this._isPristine && this.isEnabled && !this.group) {\n      switch (true) {\n        case this.hash === this.id:\n          this._spotlight();\n          break;\n\n        case this.isInitiallyDisclosed:\n          this.disclose();\n          break;\n      }\n    }\n  }\n\n  retrieved () {}\n\n  _spotlight () {\n    this.disclose();\n    this.request(() => { this.ascend(DisclosureEmission.SPOTLIGHT); });\n  }\n\n  _electPrimaries (candidates) {\n    return candidates.filter(button => button.canDisclose && !this.node.contains(button.node));\n  }\n\n  applyAbility (withhold = false) {\n    const isEnabled = !this._primaryButtons.every(button => button.isDisabled);\n\n    if (this.isEnabled === isEnabled) return;\n\n    this.isEnabled = isEnabled;\n\n    if (withhold) return;\n\n    if (!this.isEnabled && this.isDisclosed) {\n      if (this.group) this.ascend(DisclosureEmission.REMOVED);\n      else if (this.type.canConceal) this.conceal();\n    }\n\n    if (this.isEnabled) {\n      if (this.group) this.ascend(DisclosureEmission.ADDED);\n      if (this.hash === this.id) {\n        this._spotlight();\n      }\n    }\n  }\n\n  dispose () {\n    this._group = null;\n    this._primaryButtons = null;\n    super.dispose();\n    this.ascend(DisclosureEmission.REMOVED);\n  }\n}\n\nexport { Disclosure };\n","import { Instance } from '../api/modules/register/instance';\nimport ns from '../api/utilities/namespace.js';\n\nclass DisclosureButton extends Instance {\n  constructor (type) {\n    super();\n    this.type = type;\n    this.attributeName = type.ariaState ? 'aria-' + type.id : ns.attr(type.id);\n    this._canDisclose = false;\n  }\n\n  static get instanceClassName () {\n    return 'DisclosureButton';\n  }\n\n  get isPrimary () {\n    return this.registration.creator.primaryButtons.includes(this);\n  }\n\n  get canDisclose () {\n    return this._canDisclose;\n  }\n\n  get isDisabled () {\n    return this.type.canDisable && this.hasAttribute('disabled');\n  }\n\n  init () {\n    this._canDisclose = this.hasAttribute(this.attributeName);\n    this._isInitiallyDisclosed = this.isDisclosed;\n    this._isContained = this.registration.creator.node.contains(this.node);\n    this.controlsId = this.getAttribute('aria-controls');\n    this.registration.creator.retrievePrimaries();\n    this.listenClick();\n  }\n\n  get proxy () {\n    const scope = this;\n    return Object.assign(super.proxy, {\n      focus: scope.focus.bind(scope)\n    });\n  }\n\n  handleClick (e) {\n    if (this.registration.creator) this.registration.creator.toggle(this.canDisclose);\n  }\n\n  mutate (attributeNames) {\n    this._canDisclose = this.hasAttribute(this.attributeName);\n    this.registration.creator.applyAbility();\n    if (!this._isApplying && this.isPrimary && attributeNames.indexOf(this.attributeName) > -1 && this.registration.creator) {\n      if (this.isDisclosed) this.registration.creator.disclose();\n      else if (this.type.canConceal) this.registration.creator.conceal();\n    }\n  }\n\n  apply (value) {\n    if (!this.canDisclose) return;\n    this._isApplying = true;\n    this.setAttribute(this.attributeName, value);\n    this.request(() => { this._isApplying = false; });\n  }\n\n  get isDisclosed () {\n    return this.getAttribute(this.attributeName) === 'true';\n  }\n\n  get isInitiallyDisclosed () {\n    return this._isInitiallyDisclosed;\n  }\n\n  focus () {\n    super.focus();\n    this.scrollIntoView();\n  }\n\n  measure (rect) {\n    const buttonRect = this.rect;\n    this._dx = rect.x - buttonRect.x;\n    this._dy = rect.y - buttonRect.y;\n  }\n\n  get dx () {\n    return this._dx;\n  }\n\n  get dy () {\n    return this._dy;\n  }\n}\n\nexport { DisclosureButton };\n","import ns from '../api/utilities/namespace.js';\n\nexport const DisclosureSelector = {\n  PREVENT_CONCEAL: ns.attr.selector('prevent-conceal'),\n  GROUP: ns.attr('group')\n};\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\nimport { DisclosureSelector } from './disclosure-selector.js';\n\nclass DisclosuresGroup extends Instance {\n  constructor (disclosureInstanceClassName, jsAttribute) {\n    super(jsAttribute);\n    this.disclosureInstanceClassName = disclosureInstanceClassName;\n    this._members = [];\n    this._index = -1;\n    this._isRetrieving = false;\n    this._hasRetrieved = false;\n    this._isGrouped = true;\n  }\n\n  static get instanceClassName () {\n    return 'DisclosuresGroup';\n  }\n\n  init () {\n    this.addAscent(DisclosureEmission.ADDED, this.update.bind(this));\n    this.addAscent(DisclosureEmission.RETRIEVE, this.retrieve.bind(this));\n    this.addAscent(DisclosureEmission.REMOVED, this.update.bind(this));\n    this.descend(DisclosureEmission.GROUP);\n    this._isGrouped = this.getAttribute(DisclosureSelector.GROUP) !== 'false';\n    this.update();\n  }\n\n  get proxy () {\n    const scope = this;\n\n    const proxyAccessors = {\n      set index (value) {\n        scope.index = value;\n      },\n      get index () {\n        return scope.index;\n      },\n      get length () {\n        return scope.length;\n      },\n      get current () {\n        const current = scope.current;\n        return current ? current.proxy : null;\n      },\n      get members () {\n        return scope.members.map((member) => member.proxy);\n      },\n      get hasFocus () {\n        return scope.hasFocus;\n      },\n      set isGrouped (value) {\n        scope.isGrouped = value;\n      },\n      get isGrouped () {\n        return scope.isGrouped;\n      }\n    };\n\n    return completeAssign(super.proxy, proxyAccessors);\n  }\n\n  validate (member) {\n    return true;\n  }\n\n  getMembers () {\n    const members = this.element.getDescendantInstances(this.disclosureInstanceClassName, this.constructor.instanceClassName, true);\n    this._members = members.filter(this.validate.bind(this)).filter(member => member.isEnabled);\n    const invalids = members.filter(member => !this._members.includes(member));\n    invalids.forEach(invalid => invalid.conceal());\n  }\n\n  retrieve (bypassPrevention = false) {\n    if (this._isRetrieving || (this._hasRetrieved && !bypassPrevention)) return;\n    this._isRetrieving = true;\n    this.request(this._retrieve.bind(this));\n  }\n\n  _retrieve () {\n    this.getMembers();\n    this._isRetrieving = false;\n    this._hasRetrieved = true;\n    if (this.hash) {\n      for (let i = 0; i < this.length; i++) {\n        const member = this.members[i];\n        if (this.hash === member.id) {\n          this.index = i;\n          this.request(() => { this.ascend(DisclosureEmission.SPOTLIGHT); });\n          return i;\n        }\n      }\n    }\n\n    for (let i = 0; i < this.length; i++) {\n      const member = this.members[i];\n      if (member.isInitiallyDisclosed) {\n        this.index = i;\n        return i;\n      }\n    }\n\n    return this.getIndex();\n  }\n\n  update () {\n    this.getMembers();\n    if (this._hasRetrieved) this.getIndex();\n  }\n\n  get members () {\n    return this._members;\n  }\n\n  get length () {\n    return this.members ? this.members.length : 0;\n  }\n\n  getIndex (defaultIndex = -1) {\n    this._index = undefined;\n    let index = defaultIndex;\n    for (let i = 0; i < this.length; i++) {\n      if (this.members[i].isDisclosed) {\n        index = i;\n        break;\n      }\n    }\n\n    this.index = index;\n    return index;\n  }\n\n  get index () {\n    return this._index;\n  }\n\n  set index (value) {\n    if (value < -1 || value >= this.length || value === this._index) return;\n    this._index = value;\n    for (let i = 0; i < this.length; i++) {\n      const member = this.members[i];\n      if (value === i) {\n        if (!member.isDisclosed) member.disclose(true);\n      } else {\n        if ((this.isGrouped || !this.canUngroup) && member.isDisclosed) member.conceal(true);\n      }\n    }\n    this.apply();\n  }\n\n  get current () {\n    if (this._index === -1 || isNaN(this._index)) return null;\n    return this._members[this._index] || null;\n  }\n\n  set current (member) {\n    this.index = this.members.indexOf(member);\n  }\n\n  get hasFocus () {\n    const current = this.current;\n    if (current) return current.hasFocus;\n    return false;\n  }\n\n  set isGrouped (value) {\n    const isGrouped = !!value;\n    if (this._isGrouped === isGrouped) return;\n    this._isGrouped = isGrouped;\n    this.setAttribute(DisclosureSelector.GROUP, !!value);\n    this.update();\n  }\n\n  get isGrouped () {\n    return this._isGrouped;\n  }\n\n  get canUngroup () {\n    return false;\n  }\n\n  mutate (attributesNames) {\n    if (attributesNames.includes(DisclosureSelector.GROUP)) {\n      this.isGrouped = this.getAttribute(DisclosureSelector.GROUP) !== 'false';\n    }\n  }\n\n  apply () {}\n\n  dispose () {\n    super.dispose();\n    this.descend(DisclosureEmission.UNGROUP);\n    this._members = null;\n  }\n}\n\nexport { DisclosuresGroup };\n","export const DisclosureType = {\n  EXPAND: {\n    id: 'expanded',\n    ariaState: true,\n    ariaControls: true,\n    canConceal: true,\n    canDisable: true\n  },\n  SELECT: {\n    id: 'selected',\n    ariaState: true,\n    ariaControls: true,\n    canConceal: false,\n    canDisable: true\n  },\n  OPENED: {\n    id: 'opened',\n    ariaState: false,\n    ariaControls: true,\n    canConceal: true,\n    canDisable: false\n  }\n};\n","import { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { DisclosureButton } from '../disclosure/disclosure-button.js';\n\nclass CollapseButton extends DisclosureButton {\n  constructor () {\n    super(DisclosureType.EXPAND);\n  }\n\n  static get instanceClassName () {\n    return 'CollapseButton';\n  }\n}\n\nexport { CollapseButton };\n","import ns from '../api/utilities/namespace.js';\n\nexport const CollapseSelector = {\n  COLLAPSE: ns.selector('collapse'),\n  COLLAPSING: ns.selector('collapsing')\n};\n","import { Disclosure } from '../disclosure/disclosure.js';\nimport { CollapseSelector } from './collapse-selector.js';\nimport { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { CollapseButton } from './collapse-button.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass Collapse extends Disclosure {\n  constructor () {\n    super(DisclosureType.EXPAND, CollapseSelector.COLLAPSE, CollapseButton, 'CollapsesGroup');\n  }\n\n  static get instanceClassName () {\n    return 'Collapse';\n  }\n\n  init () {\n    super.init();\n    this.listen('transitionend', this.endCollapsing.bind(this));\n  }\n\n  endCollapsing (e) {\n    if (!this._isCollpasing) return;\n    if (this._timeout) clearTimeout(this._timeout);\n    this._timeout = null;\n    this._isCollpasing = false;\n    this.removeClass(CollapseSelector.COLLAPSING);\n    if (!this.isDisclosed) {\n      if (this.isLegacy) this.style.maxHeight = '';\n    }\n  }\n\n  unbound () {\n    if (this.isLegacy) this.style.maxHeight = 'none';\n  }\n\n  disclose (withhold) {\n    if (this.isDisclosed === true || !this.isEnabled) return false;\n    this.unbound();\n    this.collapsing(() => super.disclose(withhold));\n  }\n\n  conceal (withhold, preventFocus) {\n    if (this.isDisclosed === false) return false;\n    this.collapsing(() => super.conceal(withhold, preventFocus));\n  }\n\n  collapsing (request) {\n    this._isCollpasing = true;\n    if (this._timeout) clearTimeout(this._timeout);\n    this.addClass(CollapseSelector.COLLAPSING);\n    this.adjust();\n    this.request(() => {\n      request();\n      this._timeout = setTimeout(this.endCollapsing.bind(this), 500);\n    });\n  }\n\n  adjust () {\n    this.setProperty('--collapser', 'none');\n    const height = this.node.offsetHeight;\n    this.setProperty('--collapse', -height + 'px');\n    this.setProperty('--collapser', '');\n  }\n\n  reset () {\n    if (!this.isPristine) this.isDisclosed = false;\n  }\n\n  _electPrimaries (candidates) {\n    const primary = this.element.parent.instances.map(instance => instance.collapsePrimary).filter(button => button !== undefined && candidates.indexOf(button) > -1);\n    if (primary.length === 1) return primary;\n    candidates = super._electPrimaries(candidates);\n    if (candidates.length === 1) return candidates;\n    const before = candidates.filter(candidate => candidate.dy >= 0);\n    if (before.length > 0) candidates = before;\n    if (candidates.length === 1) return candidates;\n    const min = Math.min(...candidates.map(candidate => candidate.dy));\n    const mins = candidates.filter(candidate => candidate.dy === min);\n    if (mins.length > 0) candidates = mins;\n    if (candidates.length === 1) return candidates;\n    candidates.sort((a, b) => Math.abs(b.dx) - Math.abs(a.dx));\n    return candidates;\n  }\n}\n\nexport { Collapse };\n","import { DisclosuresGroup } from '../disclosure/disclosures-group.js';\n\nclass CollapsesGroup extends DisclosuresGroup {\n  constructor () {\n    super('Collapse');\n  }\n\n  static get instanceClassName () {\n    return 'CollapsesGroup';\n  }\n\n  get canUngroup () {\n    return true;\n  }\n}\n\nexport { CollapsesGroup };\n","import ns from '../api/utilities/namespace.js';\n\nexport const EquisizedEmission = {\n  CHANGE: ns('equisized', 'change')\n};\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass Equisized extends Instance {\n  static get instanceClassName () {\n    return 'Equisized';\n  }\n\n  init () {\n    this.ascend(EquisizedEmission.CHANGE);\n  }\n\n  measure () {\n    if (this.isLegacy) this.style.width = 'auto';\n    return this.getRect().width;\n  }\n\n  adjust (width) {\n    if (this.isLegacy) this.style.width = `${width}px`;\n  }\n\n  dispose () {\n    this.ascend(EquisizedEmission.CHANGE);\n  }\n}\n\nexport { Equisized };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass EquisizedsGroup extends Instance {\n  static get instanceClassName () {\n    return 'EquisizedsGroup';\n  }\n\n  init () {\n    this.isResizing = true;\n    this.isLoading = true;\n    this.addAscent(EquisizedEmission.CHANGE, this.resize.bind(this));\n  }\n\n  load () {\n    this.resize();\n  }\n\n  resize () {\n    const equisizeds = this.element.getDescendantInstances('Equisized');\n    if (!this.isLegacy) this.style.setProperty('--equisized-width', 'auto');\n\n    const width = Math.max(...equisizeds.map(equisized => equisized.measure()));\n    if (this.isLegacy) equisizeds.forEach(equisized => equisized.adjust(width));\n    else this.style.setProperty('--equisized-width', `${width}px`);\n  }\n}\n\nexport { EquisizedsGroup };\n","import ns from '../../api/utilities/namespace.js';\n\nconst ToggleEvent = {\n  TOGGLE: ns.event('toggle')\n};\n\nexport { ToggleEvent };\n","import { Instance } from '../../api/modules/register/instance.js';\nimport { completeAssign } from '../../api/utilities/property/complete-assign.js';\nimport { ToggleEvent } from './toggle-event.js';\n\nclass Toggle extends Instance {\n  static get instanceClassName () {\n    return 'Toggle';\n  }\n\n  init () {\n    this.pressed = this.pressed === 'true';\n    this.listenClick();\n  }\n\n  handleClick () {\n    this.toggle();\n  }\n\n  toggle () {\n    this.pressed = this.pressed !== 'true';\n  }\n\n  get pressed () {\n    return this.getAttribute('aria-pressed');\n  }\n\n  set pressed (value) {\n    this.setAttribute('aria-pressed', value ? 'true' : 'false');\n    this.dispatch(ToggleEvent.TOGGLE, value);\n  }\n\n  get proxy () {\n    const scope = this;\n    const proxy = Object.assign(super.proxy, {\n      toggle: scope.toggle.bind(scope)\n    });\n\n    const proxyAccessors = {\n      get pressed () {\n        return scope.pressed;\n      },\n      set pressed (value) {\n        scope.pressed = value;\n      }\n    };\n\n    return completeAssign(proxy, proxyAccessors);\n  }\n}\n\nexport { Toggle };\n","export const RootSelector = {\n  ROOT: ':root'\n};\n","const setAttributes = (el, attrs) => {\n  Object.keys(attrs).forEach(key => el.setAttribute(key, attrs[key]));\n};\n\nexport { setAttributes };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { setAttributes } from '../api/utilities/attribute';\n\nclass InjectSvg extends Instance {\n  static get instanceClassName () {\n    return 'InjectSvg';\n  }\n\n  init () {\n    if (this.node) {\n      this.img = this.node.querySelector('img');\n    }\n\n    if (!this.isLegacy) {\n      this.replace();\n    }\n  }\n\n  get proxy () {\n    const scope = this;\n    return Object.assign(super.proxy, {\n      replace: scope.replace.bind(scope),\n      restore: scope.restore.bind(scope)\n    });\n  }\n\n  fetch () {\n    if (this.img) {\n      this.imgID = this.img.getAttribute('id');\n      this.imgClass = this.img.getAttribute('class');\n      this.imgURL = this.img.getAttribute('src');\n\n      fetch(this.imgURL)\n        .then(data => data.text())\n        .then(response => {\n          const parser = new DOMParser();\n          const xmlDoc = parser.parseFromString(response, 'text/html');\n          this.svg = xmlDoc.querySelector('svg');\n\n          if (this.svg) {\n            this.replace();\n          }\n        });\n    }\n  }\n\n  replace () {\n    if (!this.svg) {\n      this.fetch();\n      return;\n    }\n\n    if (this.imgID && typeof this.imgID !== 'undefined') {\n      this.svg.setAttribute('id', this.imgID);\n    }\n\n    // gestion de la dépréciation\n    let name = this.imgURL.match(/[ \\w-]+\\./)[0];\n    if (name) {\n      name = name.slice(0, -1);\n\n      if (['dark', 'light', 'system'].includes(name)) {\n        this.svg.innerHTML = this.svg.innerHTML.replaceAll('id=\"artwork-', `id=\"${name}-artwork-`);\n        this.svg.innerHTML = this.svg.innerHTML.replaceAll('\"#artwork-', `\"#${name}-artwork-`);\n      }\n    }\n\n    if (this.imgClass && typeof this.imgClass !== 'undefined') {\n      this.svg.setAttribute('class', this.imgClass);\n    }\n\n    if (this.svg.hasAttribute('xmlns:a')) {\n      this.svg.removeAttribute('xmlns:a');\n    }\n\n    this.node.setAttribute('data-fr-inject-svg', true);\n    const svgAttributes = {\n      'aria-hidden': true,\n      focusable: false\n    };\n    setAttributes(this.svg, svgAttributes);\n    this.node.replaceChild(this.svg, this.img);\n  }\n\n  restore () {\n    if (this.img && this.svg) {\n      this.node.setAttribute('data-fr-inject-svg', false);\n      this.node.replaceChild(this.img, this.svg);\n    }\n  }\n}\n\nexport { InjectSvg };\n","import ns from '../api/utilities/namespace.js';\n\nexport const InjectSvgSelector = {\n  INJECT_SVG: `[${ns.attr('inject-svg')}]`\n};\n","import { Instance } from '../api/modules/register/instance.js';\n\nclass Artwork extends Instance {\n  static get instanceClassName () {\n    return 'Artwork';\n  }\n\n  init () {\n    if (this.isLegacy) {\n      this.replace();\n    }\n  }\n\n  get proxy () {\n    const scope = this;\n    return Object.assign(super.proxy, {\n      replace: scope.replace.bind(scope)\n    });\n  }\n\n  fetch () {\n    this.xlink = this.node.getAttribute('href');\n    const splitUrl = this.xlink.split('#');\n    this.svgUrl = splitUrl[0];\n    this.svgName = splitUrl[1];\n\n    const xhr = new XMLHttpRequest();\n    xhr.onload = () => {\n      const parser = new DOMParser();\n      const xmlDoc = parser.parseFromString(xhr.responseText, 'text/html');\n      this.realSvgContent = xmlDoc.getElementById(this.svgName);\n\n      if (this.realSvgContent) {\n        this.realSvgContent.classList.add(this.node.classList);\n        this.replace();\n      }\n    };\n    xhr.open('GET', this.svgUrl);\n    xhr.send();\n  }\n\n  replace () {\n    if (!this.realSvgContent) {\n      this.fetch();\n      return;\n    }\n\n    this.node.parentNode.replaceChild(this.realSvgContent, this.node);\n  }\n}\n\nexport { Artwork };\n","import ns from '../api/utilities/namespace.js';\n\nexport const ArtworkSelector = {\n  ARTWORK_USE: `${ns.selector('artwork')} use`\n};\n","import ns from '../api/utilities/namespace.js';\n\nexport const AssessSelector = {\n  ASSESS_FILE: `${ns.attr.selector('assess-file')}`,\n  DETAIL: `${ns.attr.selector('assess-file')} [class$=\"__detail\"], ${ns.attr.selector('assess-file')} [class*=\"__detail \"]`\n};\n","import ns from '../api/utilities/namespace.js';\n\nconst AssessEmission = {\n  UPDATE: ns.emission('assess', 'update'),\n  ADDED: ns.emission('assess', 'added')\n};\n\nexport { AssessEmission };\n","import ns from '../api/utilities/namespace.js';\nimport { Instance } from '../api/modules/register/instance.js';\nimport { AssessEmission } from './assess-emission';\nimport inspector from '../api/inspect/inspector.js';\n\nclass AssessFile extends Instance {\n  static get instanceClassName () {\n    return 'AssessFile';\n  }\n\n  init () {\n    this.lang = this.getLang(this.node);\n    this.href = this.getAttribute('href');\n    this.hreflang = this.getAttribute('hreflang');\n    this.file = {};\n    this.gather();\n    this.addAscent(AssessEmission.ADDED, this.update.bind(this));\n    this.addDescent(AssessEmission.ADDED, this.update.bind(this));\n  }\n\n  getFileLength () {\n    if (this.href === undefined) {\n      this.length = -1;\n      return;\n    }\n\n    fetch(this.href, { method: 'HEAD', mode: 'cors' }).then(response => {\n      this.length = response.headers.get('content-length') || -1;\n      if (this.length === -1) {\n        inspector.warn('File size unknown: ' + this.href + '\\nUnable to get HTTP header: \"content-length\"');\n      }\n      this.gather();\n    });\n  }\n\n  mutate (attributeNames) {\n    if (attributeNames.indexOf('href') !== -1) {\n      this.href = this.getAttribute('href');\n      this.getFileLength();\n    }\n\n    if (attributeNames.indexOf('hreflang') !== -1) {\n      this.hreflang = this.getAttribute('hreflang');\n      this.gather();\n    }\n  }\n\n  gather () {\n    // TODO V2: implémenter async\n    if (this.isLegacy) this.length = -1;\n\n    if (!this.length) {\n      this.getFileLength();\n      return;\n    }\n\n    this.details = [];\n\n    if (this.href) {\n      const extension = this.parseExtension(this.href);\n      if (extension) this.details.push(extension.toUpperCase());\n    }\n\n    if (this.length !== -1) {\n      this.details.push(this.bytesToSize(this.length));\n    }\n\n    if (this.hreflang) {\n      this.details.push(this.getLangDisplayName(this.hreflang));\n    }\n\n    this.update();\n  }\n\n  update () {\n    if (!this.details) return;\n    this.descend(AssessEmission.UPDATE, this.details);\n    this.ascend(AssessEmission.UPDATE, this.details);\n  }\n\n  getLang (elem) {\n    // todo: ajouter un listener global de changement de langue\n    if (elem.lang) return elem.lang;\n    if (document.documentElement === elem) return window.navigator.language;\n    return this.getLang(elem.parentElement);\n  }\n\n  parseExtension (url) {\n    const regexExtension = /\\.(\\w{1,9})(?:$|[?#])/;\n    return url.match(regexExtension)[0].replace('.', '');\n  }\n\n  getLangDisplayName (locale) {\n    if (this.isLegacy) return locale;\n    const displayNames = new Intl.DisplayNames([this.lang], { type: 'language' });\n    const name = displayNames.of(locale);\n    return name.charAt(0).toUpperCase() + name.slice(1);\n  }\n\n  bytesToSize (bytes) {\n    if (bytes === -1) return null;\n\n    let sizeUnits = ['octets', 'ko', 'Mo', 'Go', 'To'];\n    if (this.getAttribute(ns.attr('assess-file')) === 'bytes') {\n      sizeUnits = ['bytes', 'KB', 'MB', 'GB', 'TB'];\n    }\n\n    const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1000)), 10);\n    if (i === 0) return `${bytes} ${sizeUnits[i]}`;\n\n    const size = bytes / (1000 ** i);\n    const roundedSize = Math.round((size + Number.EPSILON) * 100) / 100; // arrondi a 2 décimal\n    const stringSize = String(roundedSize).replace('.', ',');\n\n    return `${stringSize} ${sizeUnits[i]}`;\n  }\n}\n\nexport { AssessFile };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { AssessEmission } from './assess-emission';\n\nclass AssessDetail extends Instance {\n  static get instanceClassName () {\n    return 'AssessDetail';\n  }\n\n  init () {\n    this.addDescent(AssessEmission.UPDATE, this.update.bind(this));\n    this.ascend(AssessEmission.ADDED);\n  }\n\n  update (details) {\n    this.node.innerHTML = details.join(' - ');\n  }\n}\n\nexport { AssessDetail };\n","import ns from '../api/utilities/namespace.js';\n\nconst ratiosImg = ['32x9', '16x9', '3x2', '4x3', '1x1', '3x4', '2x3'];\nconst ratiosVid = ['16x9', '4x3', '1x1'];\n\nconst ratioSelector = (name, modifiers) => {\n  return modifiers.map(modifier => ns.selector(`${name}--${modifier}`)).join(',');\n};\n\nconst deprecatedRatioSelector = `${ns.selector('responsive-img')}, ${ratioSelector('responsive-img', ratiosImg)}, ${ns.selector('responsive-vid')}, ${ratioSelector('responsive-vid', ratiosVid)}`;\n\nexport const RatioSelector = {\n  RATIO: `${ns.selector('ratio')}, ${ratioSelector('ratio', ratiosImg)}, ${deprecatedRatioSelector}`\n};\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import { Instance } from '../api/modules/register/instance.js';\nimport api from '../../api.js';\n\nclass Ratio extends Instance {\n  static get instanceClassName () {\n    return 'Ratio';\n  }\n\n  init () {\n    if (!api.internals.support.supportAspectRatio()) {\n      this.ratio = 16 / 9;\n      for (const className in this.classNames) {\n        if (this.registration.selector.indexOf(this.classNames[className]) > 0) {\n          const ratio = this.classNames[className].split('ratio-');\n          if (ratio[1]) {\n            this.ratio = ratio[1].split('x')[0] / ratio[1].split('x')[1];\n          }\n        }\n      }\n      this.isRendering = true;\n      this.update();\n    }\n  }\n\n  render () {\n    const width = this.getRect().width;\n    if (width !== this.currentWidth) this.update();\n  }\n\n  update () {\n    this.currentWidth = this.getRect().width;\n    this.style.height = this.currentWidth / this.ratio + 'px';\n  }\n}\n\nexport { Ratio };\n","import ns from '../api/utilities/namespace.js';\n\nexport const PlaceSelector = {\n  TOP: ns.selector('placement--top'),\n  RIGHT: ns.selector('placement--right'),\n  BOTTOM: ns.selector('placement--bottom'),\n  LEFT: ns.selector('placement--left')\n};\n","import ns from '../api/utilities/namespace.js';\n\nexport const AlignSelector = {\n  START: ns.selector('placement--start'),\n  CENTER: ns.selector('placement--center'),\n  END: ns.selector('placement--end')\n};\n","export const PlacementPosition = {\n  TOP: 'place_top',\n  RIGHT: 'place_right',\n  BOTTOM: 'place_bottom',\n  LEFT: 'place_left'\n};\n","export const PlacementAlign = {\n  START: 'align_start',\n  CENTER: 'align_center',\n  END: 'align_end'\n};\n","export const PlacementMode = {\n  AUTO: 'placement_auto',\n  MANUAL: 'placement_manual'\n};\n","import { Instance } from '../api/modules/register/instance.js';\nimport { PlaceSelector } from './place-selector';\nimport { AlignSelector } from './align-selector';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\nimport { PlacementPosition } from './placement-position';\nimport { PlacementAlign } from './placement-align';\nimport { PlacementMode } from './placement-mode';\n\nclass Placement extends Instance {\n  constructor (mode = PlacementMode.AUTO, places = [PlacementPosition.BOTTOM, PlacementPosition.TOP, PlacementPosition.LEFT, PlacementPosition.RIGHT], aligns = [PlacementAlign.CENTER, PlacementAlign.START, PlacementAlign.END], safeAreaMargin = 16) {\n    super();\n    this._mode = mode;\n    this._places = places;\n    this._aligns = aligns;\n    this._safeAreaMargin = safeAreaMargin;\n    this._isShown = false;\n  }\n\n  static get instanceClassName () {\n    return 'Placement';\n  }\n\n  init () {\n    this.isResizing = true;\n  }\n\n  get proxy () {\n    const scope = this;\n    const proxy = Object.assign(super.proxy, {\n      show: scope.show.bind(scope),\n      hide: scope.hide.bind(scope)\n    });\n\n    const proxyAccessors = {\n      get mode () {\n        return scope.mode;\n      },\n      set mode (value) {\n        scope.mode = value;\n      },\n      get place () {\n        return scope.place;\n      },\n      set place (value) {\n        scope.place = value;\n      },\n      get align () {\n        return scope.align;\n      },\n      set align (value) {\n        scope.align = value;\n      },\n      get isShown () {\n        return scope.isShown;\n      },\n      set isShown (value) {\n        scope.isShown = value;\n      }\n    };\n\n    return completeAssign(proxy, proxyAccessors);\n  }\n\n  get mode () {\n    return this._mode;\n  }\n\n  set mode (value) {\n    this._mode = value;\n  }\n\n  get place () {\n    return this._place;\n  }\n\n  set place (value) {\n    if (this._place === value) return;\n    switch (this._place) {\n      case PlacementPosition.TOP:\n        this.removeClass(PlaceSelector.TOP);\n        break;\n\n      case PlacementPosition.RIGHT:\n        this.removeClass(PlaceSelector.RIGHT);\n        break;\n\n      case PlacementPosition.BOTTOM:\n        this.removeClass(PlaceSelector.BOTTOM);\n        break;\n\n      case PlacementPosition.LEFT:\n        this.removeClass(PlaceSelector.LEFT);\n        break;\n    }\n    this._place = value;\n    switch (this._place) {\n      case PlacementPosition.TOP:\n        this.addClass(PlaceSelector.TOP);\n        break;\n\n      case PlacementPosition.RIGHT:\n        this.addClass(PlaceSelector.RIGHT);\n        break;\n\n      case PlacementPosition.BOTTOM:\n        this.addClass(PlaceSelector.BOTTOM);\n        break;\n\n      case PlacementPosition.LEFT:\n        this.addClass(PlaceSelector.LEFT);\n        break;\n    }\n  }\n\n  get align () {\n    return this._align;\n  }\n\n  set align (value) {\n    if (this._align === value) return;\n    switch (this._align) {\n      case PlacementAlign.START:\n        this.removeClass(AlignSelector.START);\n        break;\n\n      case PlacementAlign.CENTER:\n        this.removeClass(AlignSelector.CENTER);\n        break;\n\n      case PlacementAlign.END:\n        this.removeClass(AlignSelector.END);\n        break;\n    }\n    this._align = value;\n    switch (this._align) {\n      case PlacementAlign.START:\n        this.addClass(AlignSelector.START);\n        break;\n\n      case PlacementAlign.CENTER:\n        this.addClass(AlignSelector.CENTER);\n        break;\n\n      case PlacementAlign.END:\n        this.addClass(AlignSelector.END);\n        break;\n    }\n  }\n\n  show () {\n    this.isShown = true;\n  }\n\n  hide () {\n    this.isShown = false;\n  }\n\n  get isShown () {\n    return this._isShown;\n  }\n\n  set isShown (value) {\n    if (this._isShown === value || !this.isEnabled) return;\n    this.isRendering = value;\n    this._isShown = value;\n  }\n\n  setReferent (referent) {\n    this._referent = referent;\n  }\n\n  resize () {\n    this.safeArea = {\n      top: this._safeAreaMargin,\n      right: window.innerWidth - this._safeAreaMargin,\n      bottom: window.innerHeight - this._safeAreaMargin,\n      left: this._safeAreaMargin,\n      center: window.innerWidth * 0.5,\n      middle: window.innerHeight * 0.5\n    };\n  }\n\n  render () {\n    if (!this._referent) return;\n    this.rect = this.getRect();\n    this.referentRect = this._referent.getRect();\n\n    if (this.mode === PlacementMode.AUTO) {\n      this.place = this.getPlace();\n      switch (this.place) {\n        case PlacementPosition.TOP:\n        case PlacementPosition.BOTTOM:\n          this.align = this.getHorizontalAlign();\n          break;\n\n        case PlacementPosition.LEFT:\n        case PlacementPosition.RIGHT:\n          this.align = this.getVerticalAlign();\n      }\n    }\n\n    let x, y;\n\n    switch (this.place) {\n      case PlacementPosition.TOP:\n        y = this.referentRect.top - this.rect.height;\n        break;\n\n      case PlacementPosition.RIGHT:\n        x = this.referentRect.right;\n        break;\n\n      case PlacementPosition.BOTTOM:\n        y = this.referentRect.bottom;\n        break;\n\n      case PlacementPosition.LEFT:\n        x = this.referentRect.left - this.rect.width;\n        break;\n    }\n\n    switch (this.place) {\n      case PlacementPosition.TOP:\n      case PlacementPosition.BOTTOM:\n        switch (this.align) {\n          case PlacementAlign.CENTER:\n            x = this.referentRect.center - this.rect.width * 0.5;\n            break;\n\n          case PlacementAlign.START:\n            x = this.referentRect.left;\n            break;\n\n          case PlacementAlign.END:\n            x = this.referentRect.right - this.rect.width;\n            break;\n        }\n        break;\n\n      case PlacementPosition.RIGHT:\n      case PlacementPosition.LEFT:\n        switch (this.align) {\n          case PlacementAlign.CENTER:\n            y = this.referentRect.middle - this.rect.height * 0.5;\n            break;\n\n          case PlacementAlign.START:\n            y = this.referentRect.top;\n            break;\n\n          case PlacementAlign.END:\n            y = this.referentRect.bottom - this.rect.height;\n            break;\n        }\n        break;\n    }\n\n    if (this._x !== x || this._y !== y) {\n      this._x = (x + 0.5) | 0;\n      this._y = (y + 0.5) | 0;\n      this.node.style.transform = `translate(${this._x}px,${this._y}px)`;\n    }\n  }\n\n  getPlace () {\n    for (const place of this._places) {\n      switch (place) {\n        case PlacementPosition.TOP:\n          if (this.referentRect.top - this.rect.height > this.safeArea.top) return PlacementPosition.TOP;\n          break;\n\n        case PlacementPosition.RIGHT:\n          if (this.referentRect.right + this.rect.width < this.safeArea.right) return PlacementPosition.RIGHT;\n          break;\n\n        case PlacementPosition.BOTTOM:\n          if (this.referentRect.bottom + this.rect.height < this.safeArea.bottom) return PlacementPosition.BOTTOM;\n          break;\n\n        case PlacementPosition.LEFT:\n          if (this.referentRect.left - this.rect.width > this.safeArea.left) return PlacementPosition.LEFT;\n          break;\n      }\n    }\n\n    return this._places[0];\n  }\n\n  getHorizontalAlign () {\n    for (const align of this._aligns) {\n      switch (align) {\n        case PlacementAlign.CENTER:\n          if (this.referentRect.center - this.rect.width * 0.5 > this.safeArea.left && this.referentRect.center + this.rect.width * 0.5 < this.safeArea.right) return PlacementAlign.CENTER;\n          break;\n\n        case PlacementAlign.START:\n          if (this.referentRect.left + this.rect.width < this.safeArea.right) return PlacementAlign.START;\n          break;\n\n        case PlacementAlign.END:\n          if (this.referentRect.right - this.rect.width > this.safeArea.left) return PlacementAlign.END;\n          break;\n      }\n    }\n\n    return this._aligns[0];\n  }\n\n  getVerticalAlign () {\n    for (const align of this._aligns) {\n      switch (align) {\n        case PlacementAlign.CENTER:\n          if (this.referentRect.middle - this.rect.height * 0.5 > this.safeArea.top && this.referentRect.middle + this.rect.height * 0.5 < this.safeArea.bottom) return PlacementAlign.CENTER;\n          break;\n\n        case PlacementAlign.START:\n          if (this.referentRect.top + this.rect.height < this.safeArea.bottom) return PlacementAlign.START;\n          break;\n\n        case PlacementAlign.END:\n          if (this.referentRect.bottom - this.rect.height > this.safeArea.top) return PlacementAlign.END;\n          break;\n      }\n    }\n\n    return this._aligns[0];\n  }\n\n  dispose () {\n    this._referent = null;\n    super.dispose();\n  }\n}\n\nexport { Placement };\n","import { Instance } from '../api/modules/register/instance.js';\n\nclass PlacementReferent extends Instance {\n  constructor () {\n    super();\n    this._isShown = false;\n  }\n\n  static get instanceClassName () {\n    return 'PlacementReferent';\n  }\n\n  init () {\n    this.registration.creator.setReferent(this);\n    this._placement = this.registration.creator;\n  }\n\n  get placement () {\n    return this._placement;\n  }\n\n  get isShown () {\n    return this._isShown;\n  }\n\n  set isShown (value) {\n    if (this._isShown === value || !this.isEnabled) return;\n    this._isShown = value;\n    if (value) this.registration.creator.show();\n    else this.registration.creator.hide();\n  }\n\n  show () {\n    this.isShown = true;\n  }\n\n  hide () {\n    this.isShown = false;\n  }\n}\n\nexport { PlacementReferent };\n","import api from './script/api/api';\n\nimport { Instance } from './script/api/modules/register/instance.js';\nimport { KeyCodes } from './script/api/modules/register/key-codes.js';\nimport { Breakpoints } from './script/api/modules/register/breakpoints';\nimport { Disclosure } from './script/disclosure/disclosure.js';\nimport { DisclosureButton } from './script/disclosure/disclosure-button.js';\nimport { DisclosuresGroup } from './script/disclosure/disclosures-group.js';\nimport { DisclosureType } from './script/disclosure/disclosure-type.js';\nimport { DisclosureEvent } from './script/disclosure/disclosure-event.js';\nimport { DisclosureSelector } from './script/disclosure/disclosure-selector.js';\nimport { DisclosureEmission } from './script/disclosure/disclosure-emission.js';\nimport { CollapseButton } from './script/collapse/collapse-button.js';\nimport { Collapse } from './script/collapse/collapse.js';\nimport { CollapsesGroup } from './script/collapse/collapses-group.js';\nimport { CollapseSelector } from './script/collapse/collapse-selector.js';\nimport { Equisized } from './script/equisized/equisized.js';\nimport { EquisizedsGroup } from './script/equisized/equisizeds-group.js';\nimport { EquisizedEmission } from './script/equisized/equisized-emission.js';\nimport { Toggle } from './script/action/toggle/toggle';\nimport { RootSelector } from './script/api/modules/stage/root-selector.js';\nimport { RootEmission } from './script/api/modules/stage/root-emission.js';\nimport { InjectSvg } from './script/inject/inject-svg';\nimport { InjectSvgSelector } from './script/inject/inject-svg-selector';\nimport { Artwork } from './script/artwork/artwork';\nimport { ArtworkSelector } from './script/artwork/artwork-selector';\nimport { AssessSelector } from './script/assess/assess-selector';\nimport { AssessFile } from './script/assess/assess-file';\nimport { AssessDetail } from './script/assess/assess-detail';\nimport { AssessEmission } from './script/assess/assess-emission';\nimport { RatioSelector } from './script/ratio/ratio-selector.js';\nimport { Ratio } from './script/ratio/ratio.js';\nimport { Placement } from './script/placement/placement.js';\nimport { PlacementReferent } from './script/placement/placement-referent';\nimport { PlacementAlign } from './script/placement/placement-align';\nimport { PlacementPosition } from './script/placement/placement-position';\nimport { PlacementMode } from './script/placement/placement-mode';\n\napi.core = {\n  Instance: Instance,\n  Breakpoints: Breakpoints,\n  KeyCodes: KeyCodes,\n  Disclosure: Disclosure,\n  DisclosureButton: DisclosureButton,\n  DisclosuresGroup: DisclosuresGroup,\n  DisclosureType: DisclosureType,\n  DisclosureEvent: DisclosureEvent,\n  DisclosureSelector: DisclosureSelector,\n  DisclosureEmission: DisclosureEmission,\n  Collapse: Collapse,\n  CollapseButton: CollapseButton,\n  CollapsesGroup: CollapsesGroup,\n  CollapseSelector: CollapseSelector,\n  RootSelector: RootSelector,\n  RootEmission: RootEmission,\n  Equisized: Equisized,\n  EquisizedEmission: EquisizedEmission,\n  Toggle: Toggle,\n  EquisizedsGroup: EquisizedsGroup,\n  InjectSvg: InjectSvg,\n  InjectSvgSelector: InjectSvgSelector,\n  Artwork: Artwork,\n  ArtworkSelector: ArtworkSelector,\n  AssessFile: AssessFile,\n  AssessDetail: AssessDetail,\n  AssessEmission: AssessEmission,\n  AssessSelector: AssessSelector,\n  Ratio: Ratio,\n  RatioSelector: RatioSelector,\n  Placement: Placement,\n  PlacementReferent: PlacementReferent,\n  PlacementAlign: PlacementAlign,\n  PlacementPosition: PlacementPosition,\n  PlacementMode: PlacementMode\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.core.CollapseSelector.COLLAPSE, api.core.Collapse);\napi.internals.register(api.core.InjectSvgSelector.INJECT_SVG, api.core.InjectSvg);\napi.internals.register(api.core.RatioSelector.RATIO, api.core.Ratio);\napi.internals.register(api.core.AssessSelector.ASSESS_FILE, api.core.AssessFile);\napi.internals.register(api.core.AssessSelector.DETAIL, api.core.AssessDetail);\n\nexport default api;\n","export const SchemeValue = {\n  SYSTEM: 'system',\n  LIGHT: 'light',\n  DARK: 'dark'\n};\n","import api from '../../api';\n\nexport const SchemeAttribute = {\n  THEME: api.internals.ns.attr('theme'),\n  SCHEME: api.internals.ns.attr('scheme'),\n  TRANSITION: api.internals.ns.attr('transition')\n};\n","export const SchemeTheme = {\n  LIGHT: 'light',\n  DARK: 'dark'\n};\n","import api from '../../api';\n\nexport const SchemeEmission = {\n  SCHEME: api.internals.ns.emission('scheme', 'scheme'),\n  THEME: api.internals.ns.emission('scheme', 'theme'),\n  ASK: api.internals.ns.emission('scheme', 'ask')\n};\n","import api from '../../api.js';\n\nconst SchemeEvent = {\n  SCHEME: api.internals.ns.event('scheme'),\n  THEME: api.internals.ns.event('theme')\n};\n\nexport { SchemeEvent };\n","import api from '../../api.js';\nimport { SchemeValue } from './scheme-value.js';\nimport { SchemeAttribute } from './scheme-attribute.js';\nimport { SchemeTheme } from './scheme-theme.js';\nimport { SchemeEmission } from './scheme-emission.js';\nimport { SchemeEvent } from './scheme-event.js';\n\nclass Scheme extends api.core.Instance {\n  constructor () {\n    super(false);\n  }\n\n  static get instanceClassName () {\n    return 'Scheme';\n  }\n\n  init () {\n    this.changing = this.change.bind(this);\n\n    if (this.hasAttribute(SchemeAttribute.TRANSITION)) {\n      this.removeAttribute(SchemeAttribute.TRANSITION);\n      this.request(this.restoreTransition.bind(this));\n    }\n\n    const scheme = api.internals.support.supportLocalStorage() ? localStorage.getItem('scheme') : '';\n    const schemeAttr = this.getAttribute(SchemeAttribute.SCHEME);\n\n    switch (scheme) {\n      case SchemeValue.DARK:\n      case SchemeValue.LIGHT:\n      case SchemeValue.SYSTEM:\n        this.scheme = scheme;\n        break;\n\n      default:\n        switch (schemeAttr) {\n          case SchemeValue.DARK:\n            this.scheme = SchemeValue.DARK;\n            break;\n\n          case SchemeValue.LIGHT:\n            this.scheme = SchemeValue.LIGHT;\n            break;\n\n          default:\n            this.scheme = SchemeValue.SYSTEM;\n        }\n    }\n\n    this.addAscent(SchemeEmission.ASK, this.ask.bind(this));\n    this.addAscent(SchemeEmission.SCHEME, this.apply.bind(this));\n  }\n\n  get proxy () {\n    const scope = this;\n\n    const proxyAccessors = {\n      get scheme () {\n        return scope.scheme;\n      },\n      set scheme (value) {\n        scope.scheme = value;\n      }\n    };\n\n    return api.internals.property.completeAssign(super.proxy, proxyAccessors);\n  }\n\n  restoreTransition () {\n    this.setAttribute(SchemeAttribute.TRANSITION, '');\n  }\n\n  ask () {\n    this.descend(SchemeEmission.SCHEME, this.scheme);\n  }\n\n  apply (value) {\n    this.scheme = value;\n  }\n\n  get scheme () {\n    return this._scheme;\n  }\n\n  set scheme (value) {\n    if (this._scheme === value) return;\n    this._scheme = value;\n    switch (value) {\n      case SchemeValue.SYSTEM:\n        this.listenPreferences();\n        break;\n\n      case SchemeValue.DARK:\n        this.unlistenPreferences();\n        this.theme = SchemeTheme.DARK;\n        break;\n\n      case SchemeValue.LIGHT:\n        this.unlistenPreferences();\n        this.theme = SchemeTheme.LIGHT;\n        break;\n\n      default:\n        this.scheme = SchemeValue.SYSTEM;\n        return;\n    }\n\n    this.descend(SchemeEmission.SCHEME, value);\n    if (api.internals.support.supportLocalStorage()) {\n      localStorage.setItem('scheme', value);\n    }\n    this.setAttribute(SchemeAttribute.SCHEME, value);\n    this.dispatch(SchemeEvent.SCHEME, { scheme: this._scheme });\n  }\n\n  get theme () {\n    return this._theme;\n  }\n\n  set theme (value) {\n    if (this._theme === value) return;\n    switch (value) {\n      case SchemeTheme.LIGHT:\n      case SchemeTheme.DARK:\n        this._theme = value;\n        this.setAttribute(SchemeAttribute.THEME, value);\n        this.descend(SchemeEmission.THEME, value);\n        this.dispatch(SchemeEvent.THEME, { theme: this._theme });\n        document.documentElement.style.colorScheme = value === SchemeTheme.DARK ? 'dark' : '';\n        break;\n    }\n  }\n\n  listenPreferences () {\n    if (this.isListening) return;\n    this.isListening = true;\n    this.mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n    if (this.mediaQuery.addEventListener) this.mediaQuery.addEventListener('change', this.changing);\n    this.change();\n  }\n\n  unlistenPreferences () {\n    if (!this.isListening) return;\n    this.isListening = false;\n    this.mediaQuery.removeEventListener('change', this.changing);\n    this.mediaQuery = null;\n  }\n\n  change () {\n    if (!this.isListening) return;\n    this.theme = this.mediaQuery.matches ? SchemeTheme.DARK : SchemeTheme.LIGHT;\n  }\n\n  mutate (attributeNames) {\n    if (attributeNames.indexOf(SchemeAttribute.SCHEME) > -1) this.scheme = this.getAttribute(SchemeAttribute.SCHEME);\n    if (attributeNames.indexOf(SchemeAttribute.THEME) > -1) this.theme = this.getAttribute(SchemeAttribute.THEME);\n  }\n\n  dispose () {\n    this.unlistenPreferences();\n  }\n}\n\nexport { Scheme };\n","import api from '../../api.js';\n\nexport const SchemeSelector = {\n  SCHEME: `:root${api.internals.ns.attr.selector('theme')}, :root${api.internals.ns.attr.selector('scheme')}`,\n  SWITCH_THEME: api.internals.ns.selector('switch-theme'),\n  RADIO_BUTTONS: `input[name=\"${api.internals.ns('radios-theme')}\"]`\n};\n","import api from './api.js';\nimport { Scheme } from './script/scheme/scheme.js';\nimport { SchemeValue } from './script/scheme/scheme-value.js';\nimport { SchemeSelector } from './script/scheme/scheme-selector.js';\nimport { SchemeEmission } from './script/scheme/scheme-emission.js';\nimport { SchemeTheme } from './script/scheme/scheme-theme.js';\nimport { SchemeEvent } from './script/scheme/scheme-event';\n\napi.scheme = {\n  Scheme: Scheme,\n  SchemeValue: SchemeValue,\n  SchemeSelector: SchemeSelector,\n  SchemeEmission: SchemeEmission,\n  SchemeTheme: SchemeTheme,\n  SchemeEvent: SchemeEvent\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.scheme.SchemeSelector.SCHEME, api.scheme.Scheme);\n\nexport default api;\n","import api from '../../api.js';\n\nconst ACCORDION = api.internals.ns.selector('accordion');\nconst COLLAPSE = api.internals.ns.selector('collapse');\n\nexport const AccordionSelector = {\n  GROUP: api.internals.ns.selector('accordions-group'),\n  ACCORDION: ACCORDION,\n  COLLAPSE: `${ACCORDION} > ${COLLAPSE}, ${ACCORDION} > *:not(${ACCORDION}):not(${COLLAPSE}) > ${COLLAPSE}, ${ACCORDION} > *:not(${ACCORDION}):not(${COLLAPSE}) > *:not(${ACCORDION}):not(${COLLAPSE}) > ${COLLAPSE}`,\n  COLLAPSE_LEGACY: `${ACCORDION} ${COLLAPSE}`,\n  BUTTON: `${ACCORDION}__btn`\n};\n","import api from '../../api.js';\nimport { AccordionSelector } from './accordion-selector';\n\nclass Accordion extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Accordion';\n  }\n\n  get collapsePrimary () {\n    const buttons = this.element.children.map(child => child.getInstance('CollapseButton')).filter(button => button !== null && button.hasClass(AccordionSelector.BUTTON));\n    return buttons[0];\n  }\n}\n\nexport { Accordion };\n","import api from '../../api.js';\nimport { AccordionSelector } from './accordion-selector.js';\n\nclass AccordionsGroup extends api.core.CollapsesGroup {\n  static get instanceClassName () {\n    return 'AccordionsGroup';\n  }\n\n  validate (member) {\n    const match = member.node.matches(api.internals.legacy.isLegacy ? AccordionSelector.COLLAPSE_LEGACY : AccordionSelector.COLLAPSE);\n    return super.validate(member) && match;\n  }\n}\n\nexport { AccordionsGroup };\n","import api from './api.js';\nimport { Accordion } from './script/accordion/accordion';\nimport { AccordionsGroup } from './script/accordion/accordions-group.js';\nimport { AccordionSelector } from './script/accordion/accordion-selector.js';\n\napi.accordion = {\n  Accordion: Accordion,\n  AccordionSelector: AccordionSelector,\n  AccordionsGroup: AccordionsGroup\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.accordion.AccordionSelector.GROUP, api.accordion.AccordionsGroup);\napi.internals.register(api.accordion.AccordionSelector.ACCORDION, api.accordion.Accordion);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const ButtonSelector = {\n  EQUISIZED_BUTTON: `${api.internals.ns.selector('btns-group--equisized')} ${api.internals.ns.selector('btn')}`,\n  EQUISIZED_GROUP: api.internals.ns.selector('btns-group--equisized')\n};\n","import api from './api.js';\nimport { ButtonSelector } from './script/button/button-selector';\n\napi.button = {\n  ButtonSelector: ButtonSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.button.ButtonSelector.EQUISIZED_BUTTON, api.core.Equisized);\napi.internals.register(api.button.ButtonSelector.EQUISIZED_GROUP, api.core.EquisizedsGroup);\n\nexport default api;\n","import api from '../../api.js';\n\nclass CardDownload extends api.core.Instance {\n  static get instanceClassName () {\n    return 'CardDownload';\n  }\n\n  init () {\n    this.addAscent(api.core.AssessEmission.UPDATE, details => {\n      this.descend(api.core.AssessEmission.UPDATE, details);\n    });\n    this.addAscent(api.core.AssessEmission.ADDED, () => {\n      this.descend(api.core.AssessEmission.ADDED);\n    });\n  }\n}\n\nexport { CardDownload };\n","import api from '../../api.js';\n\nexport const CardSelector = {\n  DOWNLOAD: api.internals.ns.selector('card--download'),\n  DOWNLOAD_DETAIL: `${api.internals.ns.selector('card--download')} ${api.internals.ns.selector('card__end')} ${api.internals.ns.selector('card__detail')}`\n};\n","import api from './api.js';\nimport { CardDownload } from './script/card/card-download.js';\nimport { CardSelector } from './script/card/card-selector.js';\n\napi.card = {\n  CardSelector: CardSelector,\n  CardDownload: CardDownload\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.card.CardSelector.DOWNLOAD, api.card.CardDownload);\napi.internals.register(api.card.CardSelector.DOWNLOAD_DETAIL, api.core.AssessDetail);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const CheckboxSelector = {\n  INPUT: `${api.internals.ns.selector('checkbox-group')} input[type=\"checkbox\"]`\n};\n","import api from '../../api.js';\n\nconst CheckboxEmission = {\n  CHANGE: api.internals.ns.emission('checkbox', 'change'),\n  RETRIEVE: api.internals.ns.emission('checkbox', 'retrieve')\n};\n\nexport { CheckboxEmission };\n","import api from '../../api.js';\nimport { CheckboxEmission } from './checkbox-emission.js';\n\nclass CheckboxInput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'CheckboxInput';\n  }\n\n  constructor () {\n    super();\n    this._handlingChange = this.handleChange.bind(this);\n  }\n\n  init () {\n    this.node.addEventListener('change', this._handlingChange);\n    this.addDescent(CheckboxEmission.RETRIEVE, this._handlingChange);\n    this.handleChange();\n  }\n\n  get isChecked () {\n    return this.node.checked;\n  }\n\n  handleChange () {\n    this.ascend(CheckboxEmission.CHANGE, this.node);\n  }\n}\n\nexport { CheckboxInput };\n","import api from './api.js';\nimport { CheckboxSelector } from './script/checkbox/checkbox-selector';\nimport { CheckboxEmission } from './script/checkbox/checkbox-emission.js';\nimport { CheckboxInput } from './script/checkbox/checkbox-input.js';\n\napi.checkbox = {\n  CheckboxSelector: CheckboxSelector,\n  CheckboxEmission: CheckboxEmission,\n  CheckboxInput: CheckboxInput\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.checkbox.CheckboxSelector.INPUT, api.checkbox.CheckboxInput);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const SegmentedSelector = {\n  SEGMENTED: api.internals.ns.selector('segmented'),\n  SEGMENTED_ELEMENTS: api.internals.ns.selector('segmented__elements'),\n  SEGMENTED_ELEMENT: api.internals.ns.selector('segmented__element input'),\n  SEGMENTED_LEGEND: api.internals.ns.selector('segmented__legend')\n};\n","import api from '../../api.js';\n\nconst SegmentedEmission = {\n  ADDED: api.internals.ns.emission('segmented', 'added'),\n  REMOVED: api.internals.ns.emission('segmented', 'removed')\n};\n\nexport { SegmentedEmission };\n","import api from '../../api.js';\nimport { SegmentedSelector } from './segmented-selector.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass Segmented extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Segmented';\n  }\n\n  init () {\n    this.elements = this.node.querySelector(SegmentedSelector.SEGMENTED_ELEMENTS);\n    this.legend = this.node.querySelector(SegmentedSelector.SEGMENTED_LEGEND);\n    this.addAscent(SegmentedEmission.ADDED, this.resize.bind(this));\n    this.addAscent(SegmentedEmission.REMOVED, this.resize.bind(this));\n    this._isLegendInline = this.legend && this.legend.classList.contains(`${api.prefix}-segmented__legend--inline`);\n    this.isResizing = true;\n  }\n\n  resize () {\n    const SEGMENTED_VERTICAL = `${api.prefix}-segmented--vertical`;\n    const LEGEND_INLINE = `${api.prefix}-segmented__legend--inline`;\n    const gapOffset = 16;\n\n    this.removeClass(SEGMENTED_VERTICAL);\n\n    if (this._isLegendInline) {\n      this.legend.classList.add(LEGEND_INLINE);\n\n      if (this.node.offsetWidth > this.node.parentNode.offsetWidth || (this.elements.scrollWidth + this.legend.offsetWidth + gapOffset) > this.node.parentNode.offsetWidth) {\n        this.legend.classList.remove(LEGEND_INLINE);\n      }\n    }\n\n    if (this.elements.offsetWidth > this.node.parentNode.offsetWidth || this.elements.scrollWidth > this.node.parentNode.offsetWidth) {\n      this.addClass(SEGMENTED_VERTICAL);\n    } else {\n      this.removeClass(SEGMENTED_VERTICAL);\n    }\n  }\n}\n\nexport { Segmented };\n","import api from '../../api.js';\nimport { SegmentedEmission } from './segmented-emission.js';\n\nclass SegmentedElement extends api.core.Instance {\n  static get instanceClassName () {\n    return 'SegmentedElement';\n  }\n\n  init () {\n    this.ascend(SegmentedEmission.ADDED);\n  }\n\n  dispose () {\n    this.ascend(SegmentedEmission.REMOVED);\n  }\n}\n\nexport { SegmentedElement };\n","import api from './api.js';\nimport { Segmented } from './script/segmented/segmented.js';\nimport { SegmentedElement } from './script/segmented/segmented-element.js';\nimport { SegmentedSelector } from './script/segmented/segmented-selector.js';\nimport { SegmentedEmission } from './script/segmented/segmented-emission.js';\n\napi.segmented = {\n  SegmentedSelector: SegmentedSelector,\n  SegmentedEmission: SegmentedEmission,\n  SegmentedElement: SegmentedElement,\n  Segmented: Segmented\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED, api.segmented.Segmented);\napi.internals.register(api.segmented.SegmentedSelector.SEGMENTED_ELEMENT, api.segmented.SegmentedElement);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const BreadcrumbSelector = {\n  BREADCRUMB: api.internals.ns.selector('breadcrumb'),\n  BUTTON: api.internals.ns.selector('breadcrumb__button')\n};\n","import api from '../../api.js';\nimport { BreadcrumbSelector } from './breadcrumb-selector.js';\n\nclass Breadcrumb extends api.core.Instance {\n  constructor () {\n    super();\n    this.count = 0;\n    this.focusing = this.focus.bind(this);\n  }\n\n  static get instanceClassName () {\n    return 'Breadcrumb';\n  }\n\n  init () {\n    this.getCollapse();\n    this.isResizing = true;\n  }\n\n  get proxy () {\n    const scope = this;\n    return Object.assign(super.proxy, {\n      focus: scope.focus.bind(scope),\n      disclose: scope.collapse.disclose.bind(scope.collapse)\n    });\n  }\n\n  getCollapse () {\n    const collapse = this.collapse;\n    if (collapse) {\n      collapse.listen(api.core.DisclosureEvent.DISCLOSE, this.focusing);\n    } else {\n      this.addAscent(api.core.DisclosureEmission.ADDED, this.getCollapse.bind(this));\n    }\n  }\n\n  resize () {\n    const collapse = this.collapse;\n    const links = this.links;\n    if (!collapse || !links.length) return;\n\n    if (this.isBreakpoint(api.core.Breakpoints.MD)) {\n      if (collapse.buttonHasFocus) links[0].focus();\n    } else {\n      if (links.indexOf(document.activeElement) > -1) collapse.focus();\n    }\n  }\n\n  get links () {\n    return [...this.querySelectorAll('a[href]')];\n  }\n\n  get collapse () {\n    return this.element.getDescendantInstances(api.core.Collapse.instanceClassName, null, true)[0];\n  }\n\n  focus () {\n    this.count = 0;\n    this._focus();\n  }\n\n  _focus () {\n    const link = this.links[0];\n    if (!link) return;\n    link.focus();\n    this.request(this.verify.bind(this));\n  }\n\n  verify () {\n    this.count++;\n    if (this.count > 100) return;\n    const link = this.links[0];\n    if (!link) return;\n    if (document.activeElement !== link) this._focus();\n  }\n\n  get collapsePrimary () {\n    const buttons = this.element.children.map(child => child.getInstance('CollapseButton')).filter(button => button !== null && button.hasClass(BreadcrumbSelector.BUTTON));\n    return buttons[0];\n  }\n}\n\nexport { Breadcrumb };\n","import api from './api.js';\nimport { Breadcrumb } from './script/breadcrumb/breadcrumb.js';\nimport { BreadcrumbSelector } from './script/breadcrumb/breadcrumb-selector.js';\n\napi.breadcrumb = {\n  BreadcrumbSelector: BreadcrumbSelector,\n  Breadcrumb: Breadcrumb\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.breadcrumb.BreadcrumbSelector.BREADCRUMB, api.breadcrumb.Breadcrumb);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const TooltipSelector = {\n  TOOLTIP: api.internals.ns.selector('tooltip'),\n  SHOWN: api.internals.ns.selector('tooltip--shown'),\n  BUTTON: api.internals.ns.selector('btn--tooltip')\n};\n","import api from '../../api.js';\nimport { TooltipSelector } from './tooltip-selector';\n\nconst TooltipReferentState = {\n  FOCUS: 1 << 0,\n  HOVER: 1 << 1\n};\n\nclass TooltipReferent extends api.core.PlacementReferent {\n  constructor () {\n    super();\n    this._state = 0;\n  }\n\n  static get instanceClassName () {\n    return 'TooltipReferent';\n  }\n\n  init () {\n    super.init();\n    this.listen('focusin', this.focusIn.bind(this));\n    this.listen('focusout', this.focusOut.bind(this));\n    if (!this.matches(TooltipSelector.BUTTON)) {\n      const mouseover = this.mouseover.bind(this);\n      this.listen('mouseover', mouseover);\n      this.placement.listen('mouseover', mouseover);\n      const mouseout = this.mouseout.bind(this);\n      this.listen('mouseout', mouseout);\n      this.placement.listen('mouseout', mouseout);\n    }\n    this.addEmission(api.core.RootEmission.KEYDOWN, this._keydown.bind(this));\n    this.listen('click', this._click.bind(this));\n    this.addEmission(api.core.RootEmission.CLICK, this._clickOut.bind(this));\n  }\n\n  _click () {\n    this.focus();\n  }\n\n  _clickOut (target) {\n    if (!this.node.contains(target)) this.blur();\n  }\n\n  _keydown (keyCode) {\n    switch (keyCode) {\n      case api.core.KeyCodes.ESCAPE:\n        this.blur();\n        this.close();\n        break;\n    }\n  }\n\n  close () {\n    this.state = 0;\n  }\n\n  get state () {\n    return this._state;\n  }\n\n  set state (value) {\n    if (this._state === value) return;\n    this.isShown = value > 0;\n    this._state = value;\n  }\n\n  focusIn () {\n    this.state |= TooltipReferentState.FOCUS;\n  }\n\n  focusOut () {\n    this.state &= ~TooltipReferentState.FOCUS;\n  }\n\n  mouseover () {\n    this.state |= TooltipReferentState.HOVER;\n  }\n\n  mouseout () {\n    this.state &= ~TooltipReferentState.HOVER;\n  }\n}\n\nexport { TooltipReferent };\n","import ns from '../../../../core/script/api/utilities/namespace.js';\n\nconst TooltipEvent = {\n  SHOW: ns.event('show'),\n  HIDE: ns.event('hide')\n};\n\nexport { TooltipEvent };\n","import api from '../../api.js';\nimport { TooltipReferent } from './tooltip-referent';\nimport { TooltipSelector } from './tooltip-selector';\nimport { TooltipEvent } from './tooltip-event.js';\n\nconst TooltipState = {\n  HIDDEN: 'hidden',\n  SHOWN: 'shown',\n  HIDING: 'hiding'\n};\n\nclass Tooltip extends api.core.Placement {\n  constructor () {\n    super(api.core.PlacementMode.AUTO, [api.core.PlacementPosition.TOP, api.core.PlacementPosition.BOTTOM], [api.core.PlacementAlign.CENTER, api.core.PlacementAlign.START, api.core.PlacementAlign.END]);\n    this.modifier = '';\n    this._state = TooltipState.HIDDEN;\n  }\n\n  static get instanceClassName () {\n    return 'Tooltip';\n  }\n\n  init () {\n    super.init();\n    this.register(`[aria-describedby=\"${this.id}\"]`, TooltipReferent);\n    this.listen('transitionend', this.transitionEnd.bind(this));\n  }\n\n  transitionEnd () {\n    if (this._state === TooltipState.HIDING) {\n      this._state = TooltipState.HIDDEN;\n      this.isShown = false;\n    }\n  }\n\n  get isShown () {\n    return super.isShown;\n  }\n\n  set isShown (value) {\n    if (!this.isEnabled) return;\n    switch (true) {\n      case value:\n        this._state = TooltipState.SHOWN;\n        this.addClass(TooltipSelector.SHOWN);\n        this.dispatch(TooltipEvent.SHOW);\n        super.isShown = true;\n        break;\n\n      case this.isShown && !value && this._state === TooltipState.SHOWN:\n        this._state = TooltipState.HIDING;\n        this.removeClass(TooltipSelector.SHOWN);\n        break;\n\n      case this.isShown && !value && this._state === TooltipState.HIDDEN:\n        this.dispatch(TooltipEvent.HIDE);\n        super.isShown = false;\n        break;\n    }\n  }\n\n  render () {\n    super.render();\n    let x = this.referentRect.center - this.rect.center;\n    const limit = this.rect.width * 0.5 - 8;\n    if (x < -limit) x = -limit;\n    if (x > limit) x = limit;\n    this.setProperty('--arrow-x', `${x.toFixed(2)}px`);\n  }\n}\n\nexport { Tooltip };\n","import api from './api.js';\nimport { Tooltip } from './script/tooltip/tooltip.js';\nimport { TooltipSelector } from './script/tooltip/tooltip-selector.js';\nimport { TooltipEvent } from './script/tooltip/tooltip-event';\n\napi.tooltip = {\n  Tooltip: Tooltip,\n  TooltipSelector: TooltipSelector,\n  TooltipEvent: TooltipEvent\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tooltip.TooltipSelector.TOOLTIP, api.tooltip.Tooltip);\n\nexport default api;\n","import api from '../../api.js';\n\nclass ToggleInput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'ToggleInput';\n  }\n\n  get isChecked () {\n    return this.node.checked;\n  }\n}\n\nexport { ToggleInput };\n","import api from '../../api.js';\nimport { ToggleInput } from './toggle-input.js';\n\nclass ToggleStatusLabel extends api.core.Instance {\n  static get instanceClassName () {\n    return 'ToggleStatusLabel';\n  }\n\n  init () {\n    this.register(`input[id=\"${this.getAttribute('for')}\"]`, ToggleInput);\n    this.update();\n    this.isSwappingFont = true;\n  }\n\n  get proxy () {\n    const scope = this;\n    return Object.assign(super.proxy, {\n      update: scope.update.bind(scope)\n    });\n  }\n\n  get input () {\n    return this.getRegisteredInstances('ToggleInput')[0];\n  }\n\n  update () {\n    this.node.style.removeProperty('--toggle-status-width');\n    const checked = this.input.isChecked;\n\n    const style = getComputedStyle(this.node, ':before');\n    let maxWidth = parseFloat(style.width);\n    this.input.node.checked = !checked;\n\n    const style2 = getComputedStyle(this.node, ':before');\n    const width = parseFloat(style2.width);\n    if (width > maxWidth) maxWidth = width;\n    this.input.node.checked = checked;\n\n    this.node.style.setProperty('--toggle-status-width', (maxWidth / 16) + 'rem');\n  }\n\n  swapFont (families) {\n    this.update();\n  }\n}\n\nexport { ToggleStatusLabel };\n","import api from '../../api.js';\n\nexport const ToggleSelector = {\n  STATUS_LABEL: `${api.internals.ns.selector('toggle__label')}${api.internals.ns.attr.selector('checked-label')}${api.internals.ns.attr.selector('unchecked-label')}`\n};\n","import api from './api.js';\nimport { ToggleStatusLabel } from './script/toggle/toggle-status-label.js';\nimport { ToggleSelector } from './script/toggle/toggle-selector.js';\n// import { ToggleInput } from './script/toggle/toggle-input.js';\n\napi.toggle = {\n  ToggleStatusLabel: ToggleStatusLabel,\n  ToggleSelector: ToggleSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.toggle.ToggleSelector.STATUS_LABEL, api.toggle.ToggleStatusLabel);\n\nexport default api;\n","import api from '../../api.js';\n\nconst ITEM = api.internals.ns.selector('sidemenu__item');\nconst COLLAPSE = api.internals.ns.selector('collapse');\n\nexport const SidemenuSelector = {\n  LIST: api.internals.ns.selector('sidemenu__list'),\n  COLLAPSE: `${ITEM} > ${COLLAPSE}, ${ITEM} > *:not(${ITEM}):not(${COLLAPSE}) > ${COLLAPSE}, ${ITEM} > *:not(${ITEM}):not(${COLLAPSE}) > *:not(${ITEM}):not(${COLLAPSE}) > ${COLLAPSE}`,\n  COLLAPSE_LEGACY: `${ITEM} ${COLLAPSE}`,\n  ITEM: api.internals.ns.selector('sidemenu__item'),\n  BUTTON: api.internals.ns.selector('sidemenu__btn')\n};\n","import api from '../../api.js';\nimport { SidemenuSelector } from './sidemenu-selector.js';\n\nclass SidemenuList extends api.core.CollapsesGroup {\n  static get instanceClassName () {\n    return 'SidemenuList';\n  }\n\n  validate (member) {\n    return super.validate(member) && member.node.matches(api.internals.legacy.isLegacy ? SidemenuSelector.COLLAPSE_LEGACY : SidemenuSelector.COLLAPSE);\n  }\n}\n\nexport { SidemenuList };\n","import api from '../../api.js';\nimport { SidemenuSelector } from './sidemenu-selector.js';\n\nclass SidemenuItem extends api.core.Instance {\n  static get instanceClassName () {\n    return 'SidemenuItem';\n  }\n\n  get collapsePrimary () {\n    const buttons = this.element.children.map(child => child.getInstance('CollapseButton')).filter(button => button !== null && button.hasClass(SidemenuSelector.BUTTON));\n    return buttons[0];\n  }\n}\n\nexport { SidemenuItem };\n","import api from './api.js';\nimport { SidemenuList } from './script/sidemenu/sidemenu-list.js';\nimport { SidemenuSelector } from './script/sidemenu/sidemenu-selector.js';\nimport { SidemenuItem } from './script/sidemenu/sidemenu-item';\n\napi.sidemenu = {\n  SidemenuList: SidemenuList,\n  SidemenuItem: SidemenuItem,\n  SidemenuSelector: SidemenuSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.sidemenu.SidemenuSelector.LIST, api.sidemenu.SidemenuList);\napi.internals.register(api.sidemenu.SidemenuSelector.ITEM, api.sidemenu.SidemenuItem);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n  MODAL: api.internals.ns.selector('modal'),\n  SCROLL_DIVIDER: api.internals.ns.selector('scroll-divider'),\n  BODY: api.internals.ns.selector('modal__body'),\n  TITLE: api.internals.ns.selector('modal__title')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n  constructor () {\n    super(api.core.DisclosureType.OPENED);\n  }\n\n  static get instanceClassName () {\n    return 'ModalButton';\n  }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n  CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n  constructor () {\n    super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n    this._isActive = false;\n    this.scrolling = this.resize.bind(this, false);\n    this.resizing = this.resize.bind(this, true);\n  }\n\n  static get instanceClassName () {\n    return 'Modal';\n  }\n\n  init () {\n    super.init();\n    this._isDialog = this.node.tagName === 'DIALOG';\n    this.isScrolling = false;\n    this.listenClick();\n    this.addEmission(api.core.RootEmission.KEYDOWN, this._keydown.bind(this));\n  }\n\n  _keydown (keyCode) {\n    switch (keyCode) {\n      case api.core.KeyCodes.ESCAPE:\n        this._escape();\n        break;\n    }\n  }\n\n  // TODO v2 : passer les tagName d'action en constante\n  _escape () {\n    const tagName = document.activeElement ? document.activeElement.tagName : undefined;\n\n    switch (tagName) {\n      case 'INPUT':\n      case 'LABEL':\n      case 'TEXTAREA':\n      case 'SELECT':\n      case 'AUDIO':\n      case 'VIDEO':\n        break;\n\n      default:\n        if (this.isDisclosed) {\n          this.conceal();\n          this.focus();\n        }\n    }\n  }\n\n  retrieved () {\n    this._ensureAccessibleName();\n  }\n\n  get body () {\n    return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n  }\n\n  handleClick (e) {\n    if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n  }\n\n  disclose (withhold) {\n    if (!super.disclose(withhold)) return false;\n    if (this.body) this.body.activate();\n    this.isScrollLocked = true;\n    this.setAttribute('aria-modal', 'true');\n    this.setAttribute('open', 'true');\n    if (!this._isDialog) {\n      this.activateModal();\n    }\n    return true;\n  }\n\n  conceal (withhold, preventFocus) {\n    if (!super.conceal(withhold, preventFocus)) return false;\n    this.isScrollLocked = false;\n    this.removeAttribute('aria-modal');\n    this.removeAttribute('open');\n    if (this.body) this.body.deactivate();\n    if (!this._isDialog) {\n      this.deactivateModal();\n    }\n    return true;\n  }\n\n  get isDialog () {\n    return this._isDialog;\n  }\n\n  set isDialog (value) {\n    this._isDialog = value;\n  }\n\n  activateModal () {\n    if (this._isActive) return;\n    this._isActive = true;\n    this._hasDialogRole = this.getAttribute('role') === 'dialog';\n    if (!this._hasDialogRole) this.setAttribute('role', 'dialog');\n  }\n\n  deactivateModal () {\n    if (!this._isActive) return;\n    this._isActive = false;\n    if (!this._hasDialogRole) this.removeAttribute('role');\n  }\n\n  _setAccessibleName (node, append) {\n    const id = this.retrieveNodeId(node, append);\n    this.warn(`add reference to ${append} for accessible name (aria-labelledby)`);\n    this.setAttribute('aria-labelledby', id);\n  }\n\n  _ensureAccessibleName () {\n    if (this.hasAttribute('aria-labelledby') || this.hasAttribute('aria-label')) return;\n    this.warn('missing accessible name');\n    const title = this.node.querySelector(ModalSelector.TITLE);\n    const primary = this.primaryButtons[0];\n\n    switch (true) {\n      case title !== null:\n        this._setAccessibleName(title, 'title');\n        break;\n\n      case primary !== undefined:\n        this.warn('missing required title, fallback to primary button');\n        this._setAccessibleName(primary, 'primary');\n        break;\n    }\n  }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n  '[tabindex=\"0\"]',\n  'a[href]',\n  'button:not([disabled])',\n  'input:not([disabled])',\n  'select:not([disabled])',\n  'textarea:not([disabled])',\n  'audio[controls]',\n  'video[controls]',\n  '[contenteditable]:not([contenteditable=\"false\"])',\n  'details>summary:first-of-type',\n  'details',\n  'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n  '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n  if (!(element instanceof Element)) return false;\n  const style = window.getComputedStyle(element);\n  if (!style) return false;\n  if (style.visibility === 'hidden') return false;\n  if (container === undefined) container = element;\n\n  while (container.contains(element)) {\n    if (style.display === 'none') return false;\n    element = element.parentElement;\n  }\n\n  return true;\n};\n\nclass FocusTrap {\n  constructor (onTrap, onUntrap) {\n    this.element = null;\n    this.activeElement = null;\n    this.onTrap = onTrap;\n    this.onUntrap = onUntrap;\n    this.waiting = this.wait.bind(this);\n    this.handling = this.handle.bind(this);\n    this.focusing = this.maintainFocus.bind(this);\n    this.current = null;\n  }\n\n  get trapped () { return this.element !== null; }\n\n  trap (element) {\n    if (this.trapped) this.untrap();\n\n    this.element = element;\n    this.isTrapping = true;\n    this.wait();\n\n    if (this.onTrap) this.onTrap();\n  }\n\n  wait () {\n    if (!isFocusable(this.element)) {\n      window.requestAnimationFrame(this.waiting);\n      return;\n    }\n\n    this.trapping();\n  }\n\n  trapping () {\n    if (!this.isTrapping) return;\n    this.isTrapping = false;\n    const focusables = this.focusables;\n    if (focusables.length && focusables.indexOf(document.activeElement) === -1) focusables[0].focus();\n    this.element.setAttribute('aria-modal', true);\n    window.addEventListener('keydown', this.handling);\n    document.body.addEventListener('focus', this.focusing, true);\n\n    if (IS_STUNNING) {\n      this.stunneds = [];\n      this.stun(document.body);\n    }\n  }\n\n  stun (node) {\n    for (const child of node.children) {\n      if (child === this.element) continue;\n      if (child.contains(this.element)) {\n        this.stun(child);\n        continue;\n      }\n      this.stunneds.push(new Stunned(child));\n    }\n  }\n\n  maintainFocus (event) {\n    if (!this.element.contains(event.target)) {\n      const focusables = this.focusables;\n      if (focusables.length === 0) return;\n      const first = focusables[0];\n      event.preventDefault();\n      first.focus();\n    }\n  }\n\n  handle (e) {\n    if (e.keyCode !== 9) return;\n\n    const focusables = this.focusables;\n    if (focusables.length === 0) return;\n\n    const first = focusables[0];\n    const last = focusables[focusables.length - 1];\n\n    const index = focusables.indexOf(document.activeElement);\n\n    if (e.shiftKey) {\n      if (!this.element.contains(document.activeElement) || index < 1) {\n        e.preventDefault();\n        last.focus();\n      } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n        e.preventDefault();\n        focusables[index - 1].focus();\n      }\n    } else {\n      if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n        e.preventDefault();\n        first.focus();\n      } else if (document.activeElement.tabIndex > 0) {\n        e.preventDefault();\n        focusables[index + 1].focus();\n      }\n    }\n  }\n\n  get focusables () {\n    let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n    /**\n     *  filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n     **/\n    const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n    if (radios.length) {\n      const groups = {};\n\n      for (const radio of radios) {\n        const name = radio.getAttribute('name');\n        if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n        groups[name].push(radio);\n      }\n\n      unordereds = unordereds.filter((unordered) => {\n        if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n        const name = unordered.getAttribute('name');\n        return groups[name].keep(unordered);\n      });\n    }\n\n    const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n    ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n    const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n    const concateneds = ordereds.concat(noDuplicates);\n    return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n  }\n\n  untrap () {\n    if (!this.trapped) return;\n    this.isTrapping = false;\n\n    this.element.removeAttribute('aria-modal');\n    window.removeEventListener('keydown', this.handling);\n    document.body.removeEventListener('focus', this.focusing, true);\n\n    this.element = null;\n\n    if (IS_STUNNING) {\n      for (const stunned of this.stunneds) stunned.unstun();\n      this.stunneds = [];\n    }\n\n    if (this.onUntrap) this.onUntrap();\n  }\n\n  dispose () {\n    this.untrap();\n  }\n}\n\nclass Stunned {\n  constructor (element) {\n    this.element = element;\n    // this.hidden = element.getAttribute('aria-hidden');\n    this.inert = element.getAttribute('inert');\n\n    // this.element.setAttribute('aria-hidden', true);\n    this.element.setAttribute('inert', '');\n  }\n\n  unstun () {\n    /*\n    if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n    else this.element.setAttribute('aria-hidden', this.hidden);\n     */\n\n    if (this.inert === null) this.element.removeAttribute('inert');\n    else this.element.setAttribute('inert', this.inert);\n  }\n}\n\nclass RadioButtonGroup {\n  constructor (name) {\n    this.name = name;\n    this.buttons = [];\n  }\n\n  push (button) {\n    this.buttons.push(button);\n    if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n  }\n\n  keep (button) {\n    return this.selected === button;\n  }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n  constructor () {\n    super('Modal', false);\n    this.focusTrap = new FocusTrap();\n  }\n\n  static get instanceClassName () {\n    return 'ModalsGroup';\n  }\n\n  apply (value, initial) {\n    super.apply(value, initial);\n    if (this.current === null) this.focusTrap.untrap();\n    else this.focusTrap.trap(this.current.node);\n  }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n  static get instanceClassName () {\n    return 'ModalBody';\n  }\n\n  init () {\n    this.listen('scroll', this.divide.bind(this));\n  }\n\n  activate () {\n    this.isResizing = true;\n    this.resize();\n  }\n\n  deactivate () {\n    this.isResizing = false;\n  }\n\n  divide () {\n    if (this.node.scrollHeight > this.node.clientHeight) {\n      if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n        this.removeClass(ModalSelector.SCROLL_DIVIDER);\n      } else {\n        this.addClass(ModalSelector.SCROLL_DIVIDER);\n      }\n    } else {\n      this.removeClass(ModalSelector.SCROLL_DIVIDER);\n    }\n  }\n\n  resize () {\n    this.adjust();\n    this.request(this.adjust.bind(this));\n  }\n\n  adjust () {\n    const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n    if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n    else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n    this.divide();\n  }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n  Modal: Modal,\n  ModalButton: ModalButton,\n  ModalBody: ModalBody,\n  ModalsGroup: ModalsGroup,\n  ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const PasswordEmission = {\n  TOGGLE: api.internals.ns.emission('password', 'toggle'),\n  ADJUST: api.internals.ns.emission('password', 'adjust')\n};\n","import api from '../../api.js';\nimport { PasswordEmission } from './password-emission.js';\n\nclass PasswordToggle extends api.core.Instance {\n  static get instanceClassName () {\n    return 'PasswordToggle';\n  }\n\n  init () {\n    this.listenClick();\n    this.ascend(PasswordEmission.ADJUST, this.width);\n    this.isSwappingFont = true;\n    this._isChecked = this.isChecked;\n  }\n\n  get width () {\n    const style = getComputedStyle(this.node.parentNode);\n    return parseInt(style.width);\n  }\n\n  get isChecked () {\n    return this.node.checked;\n  }\n\n  set isChecked (value) {\n    this._isChecked = value;\n    this.ascend(PasswordEmission.TOGGLE, value);\n  }\n\n  handleClick () {\n    this.isChecked = !this._isChecked;\n  }\n\n  swapFont (families) {\n    this.ascend(PasswordEmission.ADJUST, this.width);\n  }\n}\n\nexport { PasswordToggle };\n","import api from '../../api.js';\nimport { PasswordEmission } from './password-emission.js';\n\nclass Password extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Password';\n  }\n\n  init () {\n    this.addAscent(PasswordEmission.TOGGLE, this.toggle.bind(this));\n    this.addAscent(PasswordEmission.ADJUST, this.adjust.bind(this));\n  }\n\n  toggle (value) {\n    this.descend(PasswordEmission.TOGGLE, value);\n  }\n\n  adjust (value) {\n    this.descend(PasswordEmission.ADJUST, value);\n  }\n}\n\nexport { Password };\n","import api from '../../api.js';\n\nexport const PasswordSelector = {\n  PASSWORD: api.internals.ns.selector('password'),\n  INPUT: api.internals.ns.selector('password__input'),\n  LABEL: api.internals.ns.selector('password__label'),\n  TOOGLE: `${api.internals.ns.selector('password__checkbox')} input[type=\"checkbox\"]`\n};\n","import api from '../../api.js';\nimport { PasswordEmission } from './password-emission.js';\n\nclass PasswordInput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'PasswordInput';\n  }\n\n  init () {\n    this.addDescent(PasswordEmission.TOGGLE, this.toggle.bind(this));\n    this._isRevealed = this.hasAttribute('type') === 'password';\n    this.listen('keydown', this.capslock.bind(this)); // for capslock enabled\n    this.listen('keyup', this.capslock.bind(this)); // for capslock desabled\n  }\n\n  toggle (value) {\n    this.isRevealed = value;\n    this.setAttribute('type', value ? 'text' : 'password');\n  }\n\n  get isRevealed () {\n    return this._isRevealed;\n  }\n\n  capslock (event) {\n    if (event && typeof event.getModifierState !== 'function') return;\n    if (event.getModifierState('CapsLock')) {\n      this.node.parentNode.setAttribute(api.internals.ns.attr('capslock'), '');\n    } else {\n      this.node.parentNode.removeAttribute(api.internals.ns.attr('capslock'));\n    }\n  }\n\n  set isRevealed (value) {\n    this._isRevealed = value;\n    this.setAttribute('type', value ? 'text' : 'password');\n  }\n}\n\nexport { PasswordInput };\n","import api from '../../api.js';\nimport { PasswordEmission } from './password-emission.js';\n\nclass PasswordLabel extends api.core.Instance {\n  static get instanceClassName () {\n    return 'PasswordLabel';\n  }\n\n  init () {\n    this.addDescent(PasswordEmission.ADJUST, this.adjust.bind(this));\n  }\n\n  adjust (value) {\n    const valueREM = Math.ceil(value / 16);\n    this.node.style.paddingRight = valueREM + 'rem';\n  }\n}\n\nexport { PasswordLabel };\n","import api from './api.js';\nimport { PasswordToggle } from './script/password/password-toggle.js';\nimport { Password } from './script/password/password.js';\nimport { PasswordSelector } from './script/password/password-selector.js';\nimport { PasswordInput } from './script/password/password-input.js';\nimport { PasswordLabel } from './script/password/password-label.js';\n\napi.password = {\n  Password: Password,\n  PasswordToggle: PasswordToggle,\n  PasswordSelector: PasswordSelector,\n  PasswordInput: PasswordInput,\n  PasswordLabel: PasswordLabel\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.password.PasswordSelector.INPUT, api.password.PasswordInput);\napi.internals.register(api.password.PasswordSelector.PASSWORD, api.password.Password);\napi.internals.register(api.password.PasswordSelector.TOOGLE, api.password.PasswordToggle);\napi.internals.register(api.password.PasswordSelector.LABEL, api.password.PasswordLabel);\n\nexport default api;\n","import api from '../../api.js';\n\nconst ITEM = api.internals.ns.selector('nav__item');\nconst COLLAPSE = api.internals.ns.selector('collapse');\n\nexport const NavigationSelector = {\n  NAVIGATION: api.internals.ns.selector('nav'),\n  COLLAPSE: `${ITEM} > ${COLLAPSE}, ${ITEM} > *:not(${ITEM}):not(${COLLAPSE}) > ${COLLAPSE}, ${ITEM} > *:not(${ITEM}):not(${COLLAPSE}) > *:not(${ITEM}):not(${COLLAPSE}) > ${COLLAPSE}`,\n  COLLAPSE_LEGACY: `${ITEM} ${COLLAPSE}`,\n  ITEM: ITEM,\n  ITEM_RIGHT: `${ITEM}--align-right`,\n  MENU: api.internals.ns.selector('menu'),\n  BUTTON: api.internals.ns.selector('nav__btn'),\n  TRANSLATE_BUTTON: api.internals.ns.selector('translate__btn')\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\n\nclass NavigationItem extends api.core.Instance {\n  constructor () {\n    super();\n    this._isRightAligned = false;\n  }\n\n  static get instanceClassName () {\n    return 'NavigationItem';\n  }\n\n  init () {\n    this.addAscent(api.core.DisclosureEmission.ADDED, this.calculate.bind(this));\n    this.addAscent(api.core.DisclosureEmission.REMOVED, this.calculate.bind(this));\n    this.isResizing = true;\n    this.calculate();\n  }\n\n  resize () {\n    this.calculate();\n  }\n\n  calculate () {\n    const collapse = this.element.getDescendantInstances(api.core.Collapse.instanceClassName, null, true)[0];\n    if (collapse && this.isBreakpoint(api.core.Breakpoints.LG) && collapse.element.node.matches(NavigationSelector.MENU)) {\n      const right = this.element.node.parentElement.getBoundingClientRect().right; // todo: ne fonctionne que si la nav fait 100% du container\n      const width = collapse.element.node.getBoundingClientRect().width;\n      const left = this.element.node.getBoundingClientRect().left;\n      this.isRightAligned = left + width > right;\n    } else this.isRightAligned = false;\n  }\n\n  get isRightAligned () {\n    return this._isRightAligned;\n  }\n\n  set isRightAligned (value) {\n    if (this._isRightAligned === value) return;\n    this._isRightAligned = value;\n    if (value) api.internals.dom.addClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n    else api.internals.dom.removeClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n  }\n\n  get collapsePrimary () {\n    const buttons = this.element.children.map(child => child.getInstance('CollapseButton')).filter(button => button !== null && (button.hasClass(NavigationSelector.BUTTON) || button.hasClass(NavigationSelector.TRANSLATE_BUTTON)));\n    return buttons[0];\n  }\n}\n\nexport { NavigationItem };\n","export const NavigationMousePosition = {\n  NONE: -1,\n  INSIDE: 0,\n  OUTSIDE: 1\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\nimport { NavigationMousePosition } from './navigation-mouse-position.js';\n\nclass Navigation extends api.core.CollapsesGroup {\n  static get instanceClassName () {\n    return 'Navigation';\n  }\n\n  init () {\n    super.init();\n    this.clicked = false;\n    this.out = false;\n    this.addEmission(api.core.RootEmission.CLICK, this._handleRootClick.bind(this));\n    this.listen('mousedown', this.handleMouseDown.bind(this));\n    this.listenClick({ capture: true });\n    this.isResizing = true;\n  }\n\n  validate (member) {\n    return super.validate(member) && member.element.node.matches(api.internals.legacy.isLegacy ? NavigationSelector.COLLAPSE_LEGACY : NavigationSelector.COLLAPSE);\n  }\n\n  handleMouseDown (e) {\n    if (!this.isBreakpoint(api.core.Breakpoints.LG) || this.index === -1 || !this.current) return;\n    this.position = this.current.node.contains(e.target) ? NavigationMousePosition.INSIDE : NavigationMousePosition.OUTSIDE;\n    this.requestPosition();\n  }\n\n  handleClick (e) {\n    if (e.target.matches('a, button') && !e.target.matches('[aria-controls]') && !e.target.matches(api.core.DisclosureSelector.PREVENT_CONCEAL)) {\n      this.index = -1;\n    }\n  }\n\n  _handleRootClick (target) {\n    if (!this.isBreakpoint(api.core.Breakpoints.LG)) return;\n    if (!this.node.contains(target)) {\n      this.out = true;\n      this.requestPosition();\n    }\n  }\n\n  requestPosition () {\n    if (this.isRequesting) return;\n    this.isRequesting = true;\n    this.request(this.getPosition.bind(this));\n  }\n\n  getPosition () {\n    if (this.out) {\n      switch (this.position) {\n        case NavigationMousePosition.OUTSIDE:\n          this.index = -1;\n          break;\n\n        case NavigationMousePosition.INSIDE:\n          if (this.current && !this.current.node.contains(document.activeElement)) this.current.focus();\n          break;\n\n        default:\n          if (this.index > -1 && !this.current.hasFocus) this.index = -1;\n      }\n    }\n\n    this.request(this.requested.bind(this));\n  }\n\n  requested () {\n    this.position = NavigationMousePosition.NONE;\n    this.out = false;\n    this.isRequesting = false;\n  }\n\n  get index () { return super.index; }\n\n  set index (value) {\n    if (value === -1 && this.current && this.current.hasFocus) this.current.focus();\n    super.index = value;\n  }\n\n  get canUngroup () {\n    return !this.isBreakpoint(api.core.Breakpoints.LG);\n  }\n\n  resize () {\n    this.update();\n  }\n}\n\nexport { Navigation };\n","import api from './api.js';\nimport { NavigationItem } from './script/navigation/navigation-item.js';\nimport { Navigation } from './script/navigation/navigation.js';\nimport { NavigationSelector } from './script/navigation/navigation-selector.js';\nimport { NavigationMousePosition } from './script/navigation/navigation-mouse-position.js';\n\napi.navigation = {\n  Navigation: Navigation,\n  NavigationItem: NavigationItem,\n  NavigationMousePosition: NavigationMousePosition,\n  NavigationSelector: NavigationSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.navigation.NavigationSelector.NAVIGATION, api.navigation.Navigation);\napi.internals.register(api.navigation.NavigationSelector.ITEM, api.navigation.NavigationItem);\n\nexport default api;\n","import api from '../../api.js';\n\n/**\n  * TabButton correspond au bouton cliquable qui change le panel\n  * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n  * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n  constructor () {\n    super(api.core.DisclosureType.SELECT);\n  }\n\n  static get instanceClassName () {\n    return 'TabButton';\n  }\n\n  handleClick (e) {\n    super.handleClick(e);\n    this.focus();\n  }\n\n  apply (value) {\n    super.apply(value);\n    if (this.isPrimary) {\n      this.setAttribute('tabindex', value ? '0' : '-1');\n      if (value) {\n        if (this.list) this.list.focalize(this);\n      }\n    }\n  }\n\n  get list () {\n    return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n  }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n  TAB: api.internals.ns.selector('tabs__tab'),\n  GROUP: api.internals.ns.selector('tabs'),\n  PANEL: api.internals.ns.selector('tabs__panel'),\n  LIST: api.internals.ns.selector('tabs__list'),\n  SHADOW: api.internals.ns.selector('tabs__shadow'),\n  SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n  SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n  PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n  PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n  START: 'direction-start',\n  END: 'direction-end',\n  NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n  * Tab coorespond au panel d'un élement Tabs (tab panel)\n  * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n  * et ajoute/eleve l'attribut hidden, sur le panel\n  */\nclass TabPanel extends api.core.Disclosure {\n  constructor () {\n    super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n    this._direction = TabPanelDirection.NONE;\n    this._isPreventingTransition = false;\n  }\n\n  static get instanceClassName () {\n    return 'TabPanel';\n  }\n\n  get direction () {\n    return this._direction;\n  }\n\n  set direction (value) {\n    if (value === this._direction) return;\n    switch (this._direction) {\n      case TabPanelDirection.START:\n        this.removeClass(TabSelector.PANEL_START);\n        break;\n\n      case TabPanelDirection.END:\n        this.removeClass(TabSelector.PANEL_END);\n        break;\n\n      case TabPanelDirection.NONE:\n        break;\n\n      default:\n        return;\n    }\n\n    this._direction = value;\n\n    switch (this._direction) {\n      case TabPanelDirection.START:\n        this.addClass(TabSelector.PANEL_START);\n        break;\n\n      case TabPanelDirection.END:\n        this.addClass(TabSelector.PANEL_END);\n        break;\n    }\n  }\n\n  get isPreventingTransition () {\n    return this._isPreventingTransition;\n  }\n\n  set isPreventingTransition (value) {\n    if (this._isPreventingTransition === value) return;\n    if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n    else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n    this._isPreventingTransition = value === true;\n  }\n\n  translate (direction, initial) {\n    this.isPreventingTransition = initial;\n    this.direction = direction;\n  }\n\n  reset () {\n    if (this.group) this.group.retrieve(true);\n  }\n\n  _electPrimaries (candidates) {\n    if (!this.group || !this.group.list) return [];\n    return super._electPrimaries(candidates).filter(candidate => this.group.list.node.contains(candidate.node));\n  }\n}\n\nexport { TabPanel };\n","export const TabKeys = {\n  LEFT: 'tab_keys_left',\n  RIGHT: 'tab_keys_right',\n  HOME: 'tab_keys_home',\n  END: 'tab_keys_end'\n};\n","import api from '../../api.js';\n\nexport const TabEmission = {\n  PRESS_KEY: api.internals.ns.emission('tab', 'press_key'),\n  LIST_HEIGHT: api.internals.ns.emission('tab', 'list_height')\n};\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\nimport { TabKeys } from './tab-keys';\nimport { TabEmission } from './tab-emission';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n  constructor () {\n    super('TabPanel');\n  }\n\n  static get instanceClassName () {\n    return 'TabsGroup';\n  }\n\n  init () {\n    super.init();\n\n    this.listen('transitionend', this.transitionend.bind(this));\n    this.addAscent(TabEmission.PRESS_KEY, this.pressKey.bind(this));\n    this.addAscent(TabEmission.LIST_HEIGHT, this.setListHeight.bind(this));\n    this.isRendering = true;\n  }\n\n  getIndex (defaultIndex = 0) {\n    super.getIndex(defaultIndex);\n  }\n\n  get list () {\n    return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n  }\n\n  setListHeight (value) {\n    this.listHeight = value;\n  }\n\n  transitionend (e) {\n    this.isPreventingTransition = true;\n  }\n\n  get buttonHasFocus () {\n    return this.members.some(member => member.buttonHasFocus);\n  }\n\n  pressKey (key) {\n    switch (key) {\n      case TabKeys.LEFT:\n        this.pressLeft();\n        break;\n\n      case TabKeys.RIGHT:\n        this.pressRight();\n        break;\n\n      case TabKeys.HOME:\n        this.pressHome();\n        break;\n\n      case TabKeys.END:\n        this.pressEnd();\n        break;\n    }\n  }\n\n  /**\n   * Selectionne l'element suivant de la liste si on est sur un bouton\n   * Si on est à la fin on retourne au début\n   */\n  pressRight () {\n    if (this.buttonHasFocus) {\n      if (this.index < this.length - 1) {\n        this.index++;\n      } else {\n        this.index = 0;\n      }\n\n      this.focus();\n    }\n  };\n\n  /**\n   * Selectionne l'element précédent de la liste si on est sur un bouton\n   * Si on est au debut retourne a la fin\n   */\n  pressLeft () {\n    if (this.buttonHasFocus) {\n      if (this.index > 0) {\n        this.index--;\n      } else {\n        this.index = this.length - 1;\n      }\n\n      this.focus();\n    }\n  };\n\n  /**\n   * Selectionne le permier element de la liste si on est sur un bouton\n   */\n  pressHome () {\n    if (this.buttonHasFocus) {\n      this.index = 0;\n      this.focus();\n    }\n  };\n\n  /**\n   * Selectionne le dernier element de la liste si on est sur un bouton\n   */\n  pressEnd () {\n    if (this.buttonHasFocus) {\n      this.index = this.length - 1;\n      this.focus();\n    }\n  };\n\n  focus () {\n    if (this.current) {\n      this.current.focus();\n    }\n  }\n\n  apply () {\n    for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n    if (this.current) this.current.translate(TabPanelDirection.NONE);\n    for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n    this.isPreventingTransition = false;\n  }\n\n  get isPreventingTransition () {\n    return this._isPreventingTransition;\n  }\n\n  set isPreventingTransition (value) {\n    if (this._isPreventingTransition === value) return;\n    if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n    else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n    this._isPreventingTransition = value === true;\n  }\n\n  render () {\n    if (this.current === null) return;\n    this.node.scrollTop = 0;\n    this.node.scrollLeft = 0;\n    const paneHeight = Math.round(this.current.node.offsetHeight);\n    if (this.panelHeight === paneHeight) return;\n    this.panelHeight = paneHeight;\n    this.style.setProperty('--tabs-height', (this.panelHeight + this.listHeight) + 'px');\n  }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\nimport { TabKeys } from './tab-keys';\nimport { TabEmission } from './tab-emission';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n  static get instanceClassName () {\n    return 'TabsList';\n  }\n\n  init () {\n    this.listen('scroll', this.scroll.bind(this));\n    this.listenKey(api.core.KeyCodes.RIGHT, this.ascend.bind(this, TabEmission.PRESS_KEY, TabKeys.RIGHT), true, true);\n    this.listenKey(api.core.KeyCodes.LEFT, this.ascend.bind(this, TabEmission.PRESS_KEY, TabKeys.LEFT), true, true);\n    this.listenKey(api.core.KeyCodes.HOME, this.ascend.bind(this, TabEmission.PRESS_KEY, TabKeys.HOME), true, true);\n    this.listenKey(api.core.KeyCodes.END, this.ascend.bind(this, TabEmission.PRESS_KEY, TabKeys.END), true, true);\n    this.isResizing = true;\n  }\n\n  focalize (btn) {\n    const btnRect = btn.getRect();\n    const listRect = this.getRect();\n    const actualScroll = this.node.scrollLeft;\n    if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n    else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n  }\n\n  get isScrolling () {\n    return this._isScrolling;\n  }\n\n  set isScrolling (value) {\n    if (this._isScrolling === value) return;\n    this._isScrolling = value;\n    this.apply();\n  }\n\n  apply () {\n    if (this._isScrolling) {\n      this.addClass(TabSelector.SHADOW);\n      this.scroll();\n    } else {\n      this.removeClass(TabSelector.SHADOW_RIGHT);\n      this.removeClass(TabSelector.SHADOW_LEFT);\n      this.removeClass(TabSelector.SHADOW);\n    }\n  }\n\n  /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n  scroll () {\n    const scrollLeft = this.node.scrollLeft;\n    const isMin = scrollLeft <= SCROLL_OFFSET;\n    const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n    const isMax = Math.abs(scrollLeft) >= max;\n    const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n    const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n    const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n    if (isMin) {\n      this.removeClass(minSelector);\n    } else {\n      this.addClass(minSelector);\n    }\n\n    if (isMax) {\n      this.removeClass(maxSelector);\n    } else {\n      this.addClass(maxSelector);\n    }\n  }\n\n  resize () {\n    this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n    const height = this.getRect().height;\n    this.setProperty('--tabs-list-height', `${height}px`);\n    this.ascend(TabEmission.LIST_HEIGHT, height);\n  }\n\n  dispose () {\n    this.isScrolling = false;\n  }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\nimport { TabEmission } from './script/tab/tab-emission.js';\n\napi.tab = {\n  TabPanel: TabPanel,\n  TabButton: TabButton,\n  TabsGroup: TabsGroup,\n  TabsList: TabsList,\n  TabSelector: TabSelector,\n  TabEmission: TabEmission\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n","import api from '../../api.js';\n\nconst TagEvent = {\n  DISMISS: api.internals.ns.event('dismiss')\n};\n\nexport { TagEvent };\n","import api from '../../api.js';\nimport { TagEvent } from './tag-event';\n\nclass TagDismissible extends api.core.Instance {\n  static get instanceClassName () {\n    return 'TagDismissible';\n  }\n\n  init () {\n    this.listenClick();\n  }\n\n  handleClick () {\n    this.focusClosest();\n\n    switch (api.mode) {\n      case api.Modes.ANGULAR:\n      case api.Modes.REACT:\n      case api.Modes.VUE:\n        this.request(this.verify.bind(this));\n        break;\n\n      default:\n        this.remove();\n    }\n\n    this.dispatch(TagEvent.DISMISS);\n  }\n\n  verify () {\n    if (document.body.contains(this.node)) this.warn(`a TagDismissible has just been dismissed and should be removed from the dom. In ${api.mode} mode, the api doesn't handle dom modification. An event ${TagEvent.DISMISS} is dispatched by the element to trigger the removal`);\n  }\n}\n\nexport { TagDismissible };\n","import api from '../../api.js';\n\nexport const TagSelector = {\n  PRESSABLE: `${api.internals.ns.selector('tag')}[aria-pressed]`,\n  DISMISSIBLE: `${api.internals.ns.selector('tag--dismiss')}`\n};\n","import api from './api.js';\nimport { TagDismissible } from './script/tag/tag-dismissible';\nimport { TagSelector } from './script/tag/tag-selector';\nimport { TagEvent } from './script/tag/tag-event';\n\napi.tag = {\n  TagDismissible: TagDismissible,\n  TagSelector: TagSelector,\n  TagEvent: TagEvent\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tag.TagSelector.PRESSABLE, api.core.Toggle);\napi.internals.register(api.tag.TagSelector.DISMISSIBLE, api.tag.TagDismissible);\n\nexport default api;\n","import api from '../../api.js';\n\nconst TRANSCRIPTION = api.internals.ns.selector('transcription');\n\nexport const TranscriptionSelector = {\n  TRANSCRIPTION: TRANSCRIPTION,\n  BUTTON: `${TRANSCRIPTION}__btn`\n};\n","import api from '../../api.js';\nimport { TranscriptionSelector } from './transcription-selector';\n\nclass Transcription extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Transcription';\n  }\n\n  get collapsePrimary () {\n    const buttons = this.element.children.map(child => child.getInstance('CollapseButton')).filter(button => button !== null && button.hasClass(TranscriptionSelector.BUTTON));\n    return buttons[0];\n  }\n}\n\nexport { Transcription };\n","import api from './api.js';\nimport { Transcription } from './script/accordion/transcription';\nimport { TranscriptionSelector } from './script/accordion/transcription-selector.js';\n\napi.transcription = {\n  Transcription: Transcription,\n  TranscriptionSelector: TranscriptionSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.transcription.TranscriptionSelector.TRANSCRIPTION, api.transcription.Transcription);\n\nexport default api;\n","import api from '../../api.js';\n\nclass TileDownload extends api.core.Instance {\n  static get instanceClassName () {\n    return 'TileDownload';\n  }\n\n  init () {\n    this.addAscent(api.core.AssessEmission.UPDATE, details => {\n      this.descend(api.core.AssessEmission.UPDATE, details);\n    });\n    this.addAscent(api.core.AssessEmission.ADDED, () => {\n      this.descend(api.core.AssessEmission.ADDED);\n    });\n  }\n}\n\nexport { TileDownload };\n","import api from '../../api.js';\n\nexport const TileSelector = {\n  DOWNLOAD: api.internals.ns.selector('tile--download'),\n  DOWNLOAD_DETAIL: `${api.internals.ns.selector('tile--download')} ${api.internals.ns.selector('tile__detail')}`\n};\n","import api from './api.js';\nimport { TileDownload } from './script/tile/tile-download.js';\nimport { TileSelector } from './script/tile/tile-selector.js';\n\napi.tile = {\n  TileSelector: TileSelector,\n  TileDownload: TileDownload\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tile.TileSelector.DOWNLOAD, api.tile.TileDownload);\napi.internals.register(api.tile.TileSelector.DOWNLOAD_DETAIL, api.core.AssessDetail);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const RangeSelector = {\n  RANGE: api.internals.ns.selector('range'),\n  RANGE_SM: api.internals.ns.selector('range--sm'),\n  RANGE_STEP: api.internals.ns.selector('range--step'),\n  RANGE_DOUBLE: api.internals.ns.selector('range--double'),\n  RANGE_DOUBLE_STEP: api.internals.ns.selector('range--double') + api.internals.ns.selector('range--step'),\n  RANGE_INPUT: api.internals.ns.selector('range input[type=range]:nth-of-type(1)'),\n  RANGE_INPUT2: `${api.internals.ns.selector('range--double')} input[type=range]:nth-of-type(2)`,\n  RANGE_OUTPUT: api.internals.ns.selector('range__output'),\n  RANGE_MIN: api.internals.ns.selector('range__min'),\n  RANGE_MAX: api.internals.ns.selector('range__max'),\n  RANGE_PREFIX: api.internals.ns.attr('prefix'),\n  RANGE_SUFFIX: api.internals.ns.attr('suffix')\n};\n","import api from '../../api.js';\n\nexport const RangeEmission = {\n  VALUE: api.internals.ns.emission('range', 'value'),\n  VALUE2: api.internals.ns.emission('range', 'value2'),\n  OUTPUT: api.internals.ns.emission('range', 'output'),\n  CONSTRAINTS: api.internals.ns.emission('range', 'constraints'),\n  MIN: api.internals.ns.emission('range', 'min'),\n  MAX: api.internals.ns.emission('range', 'max'),\n  STEP: api.internals.ns.emission('range', 'step'),\n  PREFIX: api.internals.ns.emission('range', 'prefix'),\n  SUFFIX: api.internals.ns.emission('range', 'suffix'),\n  DISABLED: api.internals.ns.emission('range', 'disabled'),\n  ENABLE_POINTER: api.internals.ns.emission('range', 'enable_pointer')\n};\n","class RangeModel {\n  constructor () {\n    this._width = 0;\n    this._min = 0;\n    this._max = 0;\n    this._value = 0;\n    this._thumbSize = 24;\n    this._innerWidth = 0;\n    this._prefix = '';\n    this._suffix = '';\n    this._background = {};\n  }\n\n  configure (model) {\n    if (!model) return;\n    this._prefix = model._prefix;\n    this._suffix = model._suffix;\n    this._width = model.width;\n    this.setConstraints(model._constraints);\n    this.value = model.value;\n    this.update();\n  }\n\n  setPrefix (value) {\n    this._prefix = value !== null ? value : '';\n  }\n\n  setSuffix (value) {\n    this._suffix = value !== null ? value : '';\n  }\n\n  _decorate (value) {\n    return `${this._prefix}${value}${this._suffix}`;\n  }\n\n  get width () {\n    return this._width;\n  }\n\n  set width (value) {\n    this._width = value;\n  }\n\n  get isSm () {\n    return this._isSm;\n  }\n\n  set isSm (value) {\n    if (this._isSm === value) return;\n    this._isSm = value;\n    this.setThumbSize(value ? 16 : 24);\n    this.update();\n  }\n\n  setThumbSize (value, mult = 1) {\n    this._thumbSize = value;\n    this._innerPadding = value * mult;\n  }\n\n  get textValue () {\n    return this._decorate(this._value);\n  }\n\n  get value () {\n    return this._value;\n  }\n\n  set value (value) {\n    this._value = value;\n  }\n\n  get outputX () {\n    return this._outputX;\n  }\n\n  setConstraints (constraints) {\n    this._constraints = constraints;\n    this._min = constraints.min;\n    this._max = constraints.max;\n    this._step = constraints.step;\n    this._rangeWidth = constraints.rangeWidth;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get textMin () {\n    return this._decorate(this._min);\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get textMax () {\n    return this._decorate(this._max);\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get output () {\n    return {\n      text: this.textValue,\n      transform: `translateX(${this._translateX}px) translateX(-${this._centerPercent}%)`\n    };\n  }\n\n  _getRatio (value) {\n    return (value - this._min) / this._rangeWidth;\n  }\n\n  get progress () {\n    return this._progress;\n  }\n\n  update () {\n    this._update();\n  }\n\n  _update () {\n    this._innerWidth = this._width - this._innerPadding;\n    const ratio = this._getRatio(this._value);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    this._progress = {\n      right: `${(this._innerWidth * ratio + this._innerPadding * 0.5).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelStep extends RangeModel {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    if (this._stepWidth < 1 || !isFinite(this._stepWidth)) this._stepWidth = 4;\n    while (this._stepWidth < 4) this._stepWidth *= 2;\n  }\n}\n\nclass RangeModelDouble extends RangeModel {\n  get value2 () {\n    return this._value;\n  }\n\n  set value2 (value) {\n    if (this._value2 === value) return;\n    this._value2 = value;\n    this.update();\n  }\n\n  get textValue () {\n    return `${this._decorate(this._value)} - ${this._decorate(this._value2)}`;\n  }\n\n  setThumbSize (value) {\n    super.setThumbSize(value, 2);\n  }\n\n  _update () {\n    super._update();\n    const ratio = this._getRatio((this._value + this._value2) * 0.5);\n    this._translateX = ratio * this._width;\n    this._centerPercent = ratio * 100;\n    const ratio1 = this._getRatio(this._value);\n    const ratio2 = this._getRatio(this._value2);\n    this._progress = {\n      left: `${(this._innerWidth * ratio1 + this._innerPadding * 0.25).toFixed(2)}px`,\n      right: `${(this._innerWidth * ratio2 + this._innerPadding * 0.75).toFixed(2)}px`\n    };\n  }\n}\n\nclass RangeModelDoubleStep extends RangeModelDouble {\n  get stepWidth () {\n    return `${this._stepWidth.toFixed(3)}px`;\n  }\n\n  _update () {\n    super._update();\n    const steps = this._rangeWidth / this._step;\n    this._stepWidth = this._innerWidth / steps;\n    if (this._stepWidth < 4) this._stepWidth *= Math.ceil(4 / this._stepWidth);\n  }\n}\n\nexport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\nimport { RangeModel, RangeModelStep, RangeModelDouble, RangeModelDoubleStep } from './range-model';\n\nconst RangeTypes = {\n  STEP: 'step',\n  DOUBLE: 'double',\n  DOUBLE_STEP: 'double-step',\n  DEFAULT: 'default'\n};\n\nclass Range extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Range';\n  }\n\n  init () {\n    this._retrieveType();\n    this._retrieveSize();\n    if (this.isLegacy) {\n      this.isResizing = true;\n      this.isMouseMoving = true;\n    } else {\n      this._observer = new ResizeObserver(this.resize.bind(this));\n      this._observer.observe(this.node);\n    }\n\n    this.addAscent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addAscent(RangeEmission.VALUE, this.setValue.bind(this));\n    this.addAscent(RangeEmission.VALUE2, this.setValue2.bind(this));\n    if (this.getAttribute(RangeSelector.RANGE_PREFIX)) this.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n    if (this.getAttribute(RangeSelector.RANGE_SUFFIX)) this.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n    this.update();\n  }\n\n  _retrieveType () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_DOUBLE_STEP):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_DOUBLE):\n        this.type = RangeTypes.DOUBLE;\n        break;\n\n      case this.matches(RangeSelector.RANGE_STEP):\n        this.type = RangeTypes.STEP;\n        break;\n\n      default:\n        this.type = RangeTypes.DEFAULT;\n    }\n  }\n\n  set type (value) {\n    if (this._type === value) return;\n    this._type = value;\n\n    const oldModel = this._model;\n\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n        this._model = new RangeModelDoubleStep();\n        break;\n\n      case RangeTypes.DOUBLE:\n        this._model = new RangeModelDouble();\n        break;\n\n      case RangeTypes.STEP:\n        this._model = new RangeModelStep();\n        break;\n\n      default:\n        this._model = new RangeModel();\n    }\n\n    this._model.configure(oldModel);\n  }\n\n  get type () {\n    return this._type;\n  }\n\n  _retrieveSize () {\n    this._model.isSm = this.matches(RangeSelector.RANGE_SM);\n  }\n\n  resize () {\n    this._retrieveWidth();\n    this.update();\n  }\n\n  _retrieveWidth () {\n    this._model.width = this.getRect().width;\n  }\n\n  setValue (value) {\n    this._model.value = value;\n    switch (this._type) {\n      case RangeTypes.DOUBLE_STEP:\n      case RangeTypes.DOUBLE:\n        this.descend(RangeEmission.VALUE, value);\n        break;\n    }\n    this.update();\n  }\n\n  setValue2 (value) {\n    this._model.value2 = value;\n    this.descend(RangeEmission.VALUE2, value);\n    this.update();\n  }\n\n  setConstraints (constraints) {\n    this._model.setConstraints(constraints);\n    this.update();\n    this.descend(RangeEmission.CONSTRAINTS, constraints);\n  }\n\n  setPrefix (value) {\n    this._model.setPrefix(value);\n    this.update();\n  }\n\n  setSuffix (value) {\n    this._model.setSuffix(value);\n    this.update();\n  }\n\n  mutate (attributesNames) {\n    switch (true) {\n      case attributesNames.includes('class'):\n        this._retrieveType();\n        this._retrieveSize();\n        break;\n\n      case attributesNames.includes(RangeSelector.RANGE_PREFIX):\n      case attributesNames.includes(RangeSelector.RANGE_SUFFIX):\n        this._model.setPrefix(this.getAttribute(RangeSelector.RANGE_PREFIX));\n        this._model.setSuffix(this.getAttribute(RangeSelector.RANGE_SUFFIX));\n        this.update();\n        break;\n    }\n  }\n\n  update () {\n    this._model.update();\n    this.descend(RangeEmission.OUTPUT, this._model.output);\n    this.descend(RangeEmission.MIN, this._model.textMin);\n    this.descend(RangeEmission.MAX, this._model.textMax);\n    const progress = this._model.progress;\n    if (progress.left) {\n      this.style.setProperty('--progress-left', progress.left);\n    } else {\n      this.style.removeProperty('--progress-left');\n    }\n    if (progress.right) {\n      this.style.setProperty('--progress-right', progress.right);\n      if (this.isLegacy) {\n        if (progress.left) {\n          this.style.setProperty('background-position-x', progress.left);\n          this.style.setProperty('background-size', `${parseFloat(progress.right) - parseFloat(progress.left)}px ${this._model.isSm ? '8px' : '12px'}`);\n        }\n      }\n    } else {\n      this.style.removeProperty('--progress-right');\n      if (this.isLegacy) {\n        this.style.removeProperty('background-size');\n        this.style.removeProperty('background-position-x');\n      }\n    }\n    if (this._model.stepWidth) this.style.setProperty('--step-width', this._model.stepWidth);\n    else this.style.removeProperty('--step-width');\n  }\n\n  mouseMove (point) {\n    if (this._type !== RangeTypes.DOUBLE && this._type !== RangeTypes.DOUBLE_STEP) return;\n    const x = point.x - this.getRect().left;\n    this.descend(RangeEmission.ENABLE_POINTER, (parseFloat(this._model.progress.right) - parseFloat(this._model.progress.left)) / 2 + parseFloat(this._model.progress.left) < x ? 2 : 1);\n  }\n\n  dispose () {\n    this._observer.disconnect();\n  }\n}\n\nexport { Range };\n","class RangeConstraints {\n  constructor (node) {\n    this._min = isNaN(node.min) ? 0 : node.min;\n    this._max = isNaN(node.max) ? 100 : node.max;\n    this._step = isNaN(node.step) ? 1 : node.step;\n    this._rangeWidth = this._max - this._min;\n  }\n\n  get min () {\n    return this._min;\n  }\n\n  get max () {\n    return this._max;\n  }\n\n  get step () {\n    return this._step;\n  }\n\n  get rangeWidth () {\n    return this._rangeWidth;\n  }\n\n  test (min, max, step) {\n    return this._min === min && this._max === max && this._step === step;\n  }\n}\n\nexport { RangeConstraints };\n","import api from '../../api.js';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeConstraints } from './range-constraints';\n\nclass RangeInput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeInput';\n  }\n\n  init () {\n    this._init();\n    this.node.value = this.getAttribute('value');\n    this._changing = this.change.bind(this);\n    this._listenerType = this.isLegacy ? 'change' : 'input';\n    this.listen(this._listenerType, this._changing);\n    if (this.isLegacy) this.addDescent(RangeEmission.ENABLE_POINTER, this._enablePointer.bind(this));\n    this.change();\n  }\n\n  _init () {\n    this._pointerId = 1;\n    this.request(() => {\n      if (!this.hasAttribute('min')) this.setAttribute('min', 0);\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    });\n\n    this.addDescent(RangeEmission.VALUE2, this.setValue.bind(this));\n  }\n\n  _enablePointer (pointerId) {\n    const isEnabled = pointerId === this._pointerId;\n    if (this._isPointerEnabled === isEnabled) return;\n    this._isPointerEnabled = isEnabled;\n    if (isEnabled) this.style.removeProperty('pointer-events');\n    else this.style.setProperty('pointer-events', 'none');\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) > value) {\n      this.node.value = value;\n      this.dispatch('change', undefined, true);\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE, parseFloat(this.node.value));\n  }\n\n  mutate (attributesNames) {\n    if (attributesNames.includes('disabled')) this.ascend(RangeEmission.DISABLED, this.node.disabled);\n    if (attributesNames.includes('min') || attributesNames.includes('max') || attributesNames.includes('step')) {\n      this.ascend(RangeEmission.CONSTRAINTS, new RangeConstraints(this.node));\n      this.change();\n    }\n  }\n\n  dispose () {\n    if (this._listenerType) this.unlisten(this._listenerType, this._changing);\n  }\n}\n\nexport { RangeInput };\n","import { RangeInput } from './range-input.js';\nimport { RangeEmission } from './range-emission';\n\nclass RangeInput2 extends RangeInput {\n  static get instanceClassName () {\n    return 'RangeInput2';\n  }\n\n  _init () {\n    this._pointerId = 2;\n    this.addDescent(RangeEmission.CONSTRAINTS, this.setConstraints.bind(this));\n    this.addDescent(RangeEmission.VALUE, this.setValue.bind(this));\n  }\n\n  setValue (value) {\n    if (parseFloat(this.node.value) < value) {\n      this.node.value = value;\n      this.dispatch('change', undefined, true);\n      this.change();\n    }\n  }\n\n  change () {\n    this.ascend(RangeEmission.VALUE2, parseFloat(this.node.value));\n  }\n\n  setConstraints (constraints) {\n    this.node.min = constraints.min;\n    this.node.max = constraints.max;\n    this.node.step = constraints.step;\n    this.change();\n  }\n\n  mutate (attributesNames) {}\n}\n\nexport { RangeInput2 };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\n\nclass RangeOutput extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeOutput';\n  }\n\n  init () {\n    this.addDescent(RangeEmission.OUTPUT, this.change.bind(this));\n  }\n\n  change (data) {\n    this.node.innerText = data.text;\n    this.node.style.transform = data.transform;\n  }\n}\n\nexport { RangeOutput };\n","import api from '../../../api';\nimport { RangeEmission } from './range-emission.js';\nimport { RangeSelector } from './range-selector.js';\n\nclass RangeLimit extends api.core.Instance {\n  static get instanceClassName () {\n    return 'RangeLimit';\n  }\n\n  init () {\n    switch (true) {\n      case this.matches(RangeSelector.RANGE_MIN):\n        this.addDescent(RangeEmission.MIN, this.change.bind(this));\n        break;\n\n      case this.matches(RangeSelector.RANGE_MAX):\n        this.addDescent(RangeEmission.MAX, this.change.bind(this));\n        break;\n    }\n  }\n\n  change (text) {\n    this.node.innerText = text;\n  }\n}\n\nexport { RangeLimit };\n","import api from './api.js';\nimport { RangeSelector } from './script/range/range-selector.js';\nimport { RangeEmission } from './script/range/range-emission.js';\nimport { Range } from './script/range/range.js';\nimport { RangeInput } from './script/range/range-input.js';\nimport { RangeInput2 } from './script/range/range-input2.js';\nimport { RangeOutput } from './script/range/range-output.js';\nimport { RangeLimit } from './script/range/range-limit.js';\n\napi.range = {\n  Range: Range,\n  RangeInput: RangeInput,\n  RangeInput2: RangeInput2,\n  RangeOutput: RangeOutput,\n  RangeLimit: RangeLimit,\n  RangeEmission: RangeEmission,\n  RangeSelector: RangeSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.range.RangeSelector.RANGE, api.range.Range);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT, api.range.RangeInput);\napi.internals.register(api.range.RangeSelector.RANGE_INPUT2, api.range.RangeInput2);\napi.internals.register(api.range.RangeSelector.RANGE_OUTPUT, api.range.RangeOutput);\napi.internals.register(api.range.RangeSelector.RANGE_MIN, api.range.RangeLimit);\napi.internals.register(api.range.RangeSelector.RANGE_MAX, api.range.RangeLimit);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const HeaderSelector = {\n  HEADER: api.internals.ns.selector('header'),\n  TOOLS_LINKS: api.internals.ns.selector('header__tools-links'),\n  MENU_LINKS: api.internals.ns.selector('header__menu-links'),\n  BUTTONS: `${api.internals.ns.selector('header__tools-links')} ${api.internals.ns.selector('btns-group')}, ${api.internals.ns.selector('header__tools-links')} ${api.internals.ns.selector('links-group')}`,\n  MODALS: `${api.internals.ns.selector('header__search')}${api.internals.ns.selector('modal')}, ${api.internals.ns.selector('header__menu')}${api.internals.ns.selector('modal')}`\n};\n","import api from '../../api.js';\nimport { HeaderSelector } from './header-selector.js';\n\nclass HeaderLinks extends api.core.Instance {\n  static get instanceClassName () {\n    return 'HeaderLinks';\n  }\n\n  init () {\n    const header = this.queryParentSelector(HeaderSelector.HEADER);\n    this.toolsLinks = header.querySelector(HeaderSelector.TOOLS_LINKS);\n    this.menuLinks = header.querySelector(HeaderSelector.MENU_LINKS);\n    const copySuffix = '-mobile';\n\n    const toolsHtml = this.toolsLinks.innerHTML.replace(/  +/g, ' ');\n    const menuHtml = this.menuLinks.innerHTML.replace(/  +/g, ' ');\n    // Pour éviter de dupliquer des id, on ajoute un suffixe aux id et aria-controls duppliqués.\n    let toolsHtmlIdList = toolsHtml.match(/id=\"(.*?)\"/gm) || [];\n\n    // on a besoin d'échapper les backslash dans la chaine de caractère\n    // eslint-disable-next-line no-useless-escape\n    toolsHtmlIdList = toolsHtmlIdList.map(element => element.replace('id=\\\"', '').replace('\\\"', ''));\n\n    const toolsHtmlAriaControlList = toolsHtml.match(/aria-controls=\"(.*?)\"/gm);\n    let toolsHtmlDuplicateId = toolsHtml.replace(/id=\"(.*?)\"/gm, 'id=\"$1' + copySuffix + '\"');\n    if (toolsHtmlAriaControlList) {\n      for (const element of toolsHtmlAriaControlList) {\n        const ariaControlsValue = element.replace('aria-controls=\"', '').replace('\"', '');\n        if (toolsHtmlIdList.includes(ariaControlsValue)) {\n          toolsHtmlDuplicateId = toolsHtmlDuplicateId.replace(`aria-controls=\"${ariaControlsValue}\"`, `aria-controls=\"${ariaControlsValue + copySuffix}\"`);\n        };\n      }\n    }\n\n    if (toolsHtmlDuplicateId === menuHtml) return;\n\n    switch (api.mode) {\n      case api.Modes.ANGULAR:\n      case api.Modes.REACT:\n      case api.Modes.VUE:\n        this.warn(`header__tools-links content is different from header__menu-links content.\nAs you're using a dynamic framework, you should handle duplication of this content yourself, please refer to documentation:\n${api.header.doc}`);\n        break;\n\n      default:\n        this.menuLinks.innerHTML = toolsHtmlDuplicateId;\n    }\n  }\n}\n\nexport { HeaderLinks };\n","import api from '../../api.js';\n\nclass HeaderModal extends api.core.Instance {\n  static get instanceClassName () {\n    return 'HeaderModal';\n  }\n\n  init () {\n    this.isResizing = true;\n  }\n\n  resize () {\n    if (this.isBreakpoint(api.core.Breakpoints.LG)) this.deactivateModal();\n    else this.activateModal();\n  }\n\n  activateModal () {\n    const modal = this.element.getInstance('Modal');\n    if (!modal) return;\n    modal.isEnabled = true;\n    this.listenClick({ capture: true });\n  }\n\n  deactivateModal () {\n    const modal = this.element.getInstance('Modal');\n    if (!modal) return;\n    modal.conceal();\n    modal.isEnabled = false;\n    this.unlistenClick({ capture: true });\n  }\n\n  handleClick (e) {\n    if (e.target.matches('a, button') && !e.target.matches('[aria-controls]') && !e.target.matches(api.core.DisclosureSelector.PREVENT_CONCEAL)) {\n      const modal = this.element.getInstance('Modal');\n      modal.conceal();\n    }\n  }\n}\n\nexport { HeaderModal };\n","import api from './api.js';\nimport { HeaderLinks } from './script/header/header-links.js';\nimport { HeaderModal } from './script/header/header-modal.js';\nimport { HeaderSelector } from './script/header/header-selector.js';\n\napi.header = {\n  HeaderLinks: HeaderLinks,\n  HeaderModal: HeaderModal,\n  HeaderSelector: HeaderSelector,\n  doc: 'https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/en-tete'\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.header.HeaderSelector.TOOLS_LINKS, api.header.HeaderLinks);\napi.internals.register(api.header.HeaderSelector.MODALS, api.header.HeaderModal);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const DisplaySelector = {\n  DISPLAY: api.internals.ns.selector('display'),\n  RADIO_BUTTONS: `input[name=\"${api.internals.ns('radios-theme')}\"]`,\n  FIELDSET: api.internals.ns.selector('fieldset')\n};\n","import api from '../../api.js';\nimport { DisplaySelector } from './display-selector.js';\n\nclass Display extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Display';\n  }\n\n  init () {\n    this.radios = this.querySelectorAll(DisplaySelector.RADIO_BUTTONS);\n\n    if (api.scheme) {\n      this.changing = this.change.bind(this);\n      for (const radio of this.radios) radio.addEventListener('change', this.changing);\n      this.addDescent(api.scheme.SchemeEmission.SCHEME, this.apply.bind(this));\n      this.ascend(api.scheme.SchemeEmission.ASK);\n    } else {\n      this.querySelector(DisplaySelector.FIELDSET).setAttribute('disabled', '');\n    }\n  }\n\n  get scheme () {\n    return this._scheme;\n  }\n\n  set scheme (value) {\n    if (this._scheme === value || !api.scheme) return;\n    switch (value) {\n      case api.scheme.SchemeValue.SYSTEM:\n      case api.scheme.SchemeValue.LIGHT:\n      case api.scheme.SchemeValue.DARK:\n        this._scheme = value;\n        for (const radio of this.radios) {\n          radio.checked = radio.value === value;\n        }\n        this.ascend(api.scheme.SchemeEmission.SCHEME, value);\n        break;\n    }\n  }\n\n  change () {\n    for (const radio of this.radios) {\n      if (radio.checked) {\n        this.scheme = radio.value;\n        return;\n      }\n    }\n  }\n\n  apply (value) {\n    this.scheme = value;\n  }\n\n  dispose () {\n    for (const radio of this.radios) radio.removeEventListener('change', this.changing);\n  }\n}\n\nexport { Display };\n","import api from './api.js';\nimport { Display } from './script/display/display.js';\nimport { DisplaySelector } from './script/display/display-selector.js';\n\napi.display = {\n  Display: Display,\n  DisplaySelector: DisplaySelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.display.DisplaySelector.DISPLAY, api.display.Display);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const TableEmission = {\n  SCROLLABLE: api.internals.ns.emission('table', 'scrollable'),\n  CHANGE: api.internals.ns.emission('table', 'change'),\n  CAPTION_HEIGHT: api.internals.ns.emission('table', 'captionheight'),\n  CAPTION_WIDTH: api.internals.ns.emission('table', 'captionwidth')\n};\n","import api from '../../api.js';\nimport { TableEmission } from './table-emission.js';\n\nconst PADDING = '1rem'; // padding de 4v sur le caption\n\nclass Table extends api.core.Instance {\n  static get instanceClassName () {\n    return 'Table';\n  }\n\n  init () {\n    this.rowsHeaderWidth = [];\n    this.addAscent(TableEmission.CAPTION_HEIGHT, this.setCaptionHeight.bind(this));\n  }\n\n  setCaptionHeight (value) {\n    this.setProperty('--table-offset', `calc(${value}px + ${PADDING})`);\n  }\n}\n\nexport { Table };\n","import api from '../../api.js';\n\nexport const TableSelector = {\n  TABLE: api.internals.ns.selector('table'),\n  SHADOW: api.internals.ns.selector('table__shadow'),\n  SHADOW_LEFT: api.internals.ns.selector('table__shadow--left'),\n  SHADOW_RIGHT: api.internals.ns.selector('table__shadow--right'),\n  ELEMENT: [`${api.internals.ns.selector('table')}:not(${api.internals.ns.selector('table--no-scroll')}) table`],\n  CAPTION: `${api.internals.ns.selector('table')} table caption`,\n  ROW: `${api.internals.ns.selector('table')} tbody tr`,\n  COL: `${api.internals.ns.selector('table')} thead th`\n};\n","import api from '../../api.js';\nimport { TableSelector } from './table-selector.js';\n\nconst SCROLL_OFFSET = 0; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TableElement extends api.core.Instance {\n  static get instanceClassName () {\n    return 'TableElement';\n  }\n\n  init () {\n    this.listen('scroll', this.scroll.bind(this));\n    this.content = this.querySelector('tbody');\n    this.tableOffsetHeight = 0;\n    this.isResizing = true;\n  }\n\n  get isScrolling () {\n    return this._isScrolling;\n  }\n\n  set isScrolling (value) {\n    if (this._isScrolling === value) return;\n    this._isScrolling = value;\n\n    if (value) {\n      this.addClass(TableSelector.SHADOW);\n      this.scroll();\n    } else {\n      this.removeClass(TableSelector.SHADOW);\n      this.removeClass(TableSelector.SHADOW_LEFT);\n      this.removeClass(TableSelector.SHADOW_RIGHT);\n    }\n  }\n\n  /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n  scroll () {\n    const isMin = this.node.scrollLeft <= SCROLL_OFFSET;\n    const max = this.content.offsetWidth - this.node.offsetWidth - SCROLL_OFFSET;\n    const isMax = Math.abs(this.node.scrollLeft) >= max;\n    const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n    const minSelector = isRtl ? TableSelector.SHADOW_RIGHT : TableSelector.SHADOW_LEFT;\n    const maxSelector = isRtl ? TableSelector.SHADOW_LEFT : TableSelector.SHADOW_RIGHT;\n\n    if (isMin) {\n      this.removeClass(minSelector);\n    } else {\n      this.addClass(minSelector);\n    }\n\n    if (isMax) {\n      this.removeClass(maxSelector);\n    } else {\n      this.addClass(maxSelector);\n    }\n  }\n\n  resize () {\n    this.isScrolling = this.content.offsetWidth > this.node.offsetWidth;\n  }\n\n  dispose () {\n    this.isScrolling = false;\n  }\n}\n\nexport { TableElement };\n","import api from '../../api.js';\nimport { TableEmission } from './table-emission.js';\n\nclass TableCaption extends api.core.Instance {\n  static get instanceClassName () {\n    return 'TableCaption';\n  }\n\n  init () {\n    this.height = 0;\n    this.isResizing = true;\n  }\n\n  resize () {\n    const height = this.getRect().height;\n    if (this.height === height) return;\n    this.height = height;\n    this.ascend(TableEmission.CAPTION_HEIGHT, height);\n  }\n}\n\nexport { TableCaption };\n","import api from '../../api.js';\nimport { CheckboxEmission } from '../../../checkbox/script/checkbox/checkbox-emission.js';\n\nclass TableRow extends api.core.Instance {\n  static get instanceClassName () {\n    return 'TableRow';\n  }\n\n  init () {\n    if (api.checkbox) {\n      this.addAscent(CheckboxEmission.CHANGE, this._handleCheckboxChange.bind(this));\n      this.descend(CheckboxEmission.RETRIEVE);\n    }\n  }\n\n  _handleCheckboxChange (node) {\n    if (node.name === 'row-select') {\n      this.isSelected = node.checked === true;\n    }\n  }\n\n  render () {\n    const height = this.getRect().height + 2;\n    if (this._height === height) return;\n    this._height = height;\n    this.setProperty('--row-height', `${this._height}px`);\n  }\n\n  get isSelected () {\n    return this._isSelected;\n  }\n\n  set isSelected (value) {\n    if (this._isSelected === value) return;\n    this.isRendering = value;\n    this._isSelected = value;\n    this.setAttribute('aria-selected', value);\n  }\n}\n\nexport { TableRow };\n","import api from './api.js';\nimport { Table } from './script/table/table.js';\nimport { TableElement } from './script/table/table-element.js';\nimport { TableSelector } from './script/table/table-selector.js';\nimport { TableCaption } from './script/table/table-caption.js';\nimport { TableRow } from './script/table/table-row.js';\n\napi.table = {\n  Table: Table,\n  TableElement: TableElement,\n  TableCaption: TableCaption,\n  TableSelector: TableSelector,\n  TableRow: TableRow\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.table.TableSelector.TABLE, api.table.Table);\napi.internals.register(api.table.TableSelector.ELEMENT, api.table.TableElement);\napi.internals.register(api.table.TableSelector.CAPTION, api.table.TableCaption);\napi.internals.register(api.table.TableSelector.ROW, api.table.TableRow);\n\nexport default api;\n"],"names":["Element","motion","api","COLLAPSE","ITEM","SCROLL_OFFSET"],"mappings":"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"}