{"version":3,"mappings":"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","names":["check","it","global","this","fails","exec","error","require$$0","descriptors","functionBindNative","test","NATIVE_BIND","call","functionCall","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","objectPropertyIsEnumerable","V","descriptor","createPropertyDescriptor","bitmap","value","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","uncurryThis","toString","stringSlice","classofRaw","require$$1","classof","require$$2","$Object","split","indexedObject","isNullOrUndefined","$TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","documentAll","IS_HTMLDDA","documentAll_1","$documentAll","isCallable","argument","isObject","aFunction","getBuiltIn","namespace","method","objectIsPrototypeOf","engineUserAgent","userAgent","process","Deno","versions","v8","match","version","engineV8Version","V8_VERSION","$String","symbolConstructorDetection","symbol","NATIVE_SYMBOL","useSymbolAsUid","isPrototypeOf","USE_SYMBOL_AS_UID","require$$3","isSymbol","$Symbol","tryToString","aCallable","getMethod","P","func","ordinaryToPrimitive","input","pref","val","defineProperty","defineGlobalProperty","key","SHARED","store","sharedStore","sharedModule","toObject","hasOwnProperty","hasOwnProperty_1","id","postfix","uid","shared","hasOwn","require$$4","require$$5","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","wellKnownSymbol","name","TO_PRIMITIVE","toPrimitive","exoticToPrim","result","toPropertyKey","document","EXISTS","documentCreateElement","DESCRIPTORS","createElement","ie8DomDefine","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","objectGetOwnPropertyDescriptor","O","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","Attributes","current","definePropertyModule","createNonEnumerableProperty","object","getDescriptor","PROPER","functionName","functionToString","inspectSource","WeakMap","weakMapBasicDetection","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","TypeError","set","get","has","enforce","getterFor","TYPE","state","metadata","STATE","internalState","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","defineBuiltIn","simple","ceil","floor","mathTrunc","x","n","trunc","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","length","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","indexOf","push","objectKeysInternal","names","enumBugKeys","internalObjectKeys","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptorModule","copyConstructorProperties","target","source","exceptions","i","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","isForced_1","_export","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","TO_STRING_TAG","toStringTagSupport","TO_STRING_TAG_SUPPORT","CORRECT_ARGUMENTS","tryGet","tag","$","charAt","S","len","relativeIndex","k","objectKeys","objectDefineProperties","Properties","props","html","definePropertiesModule","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","objectCreate","create","UNSCOPABLES","ArrayPrototype","addToUnscopables","arrayBufferBasicDetection","defineBuiltInAccessor","correctPrototypeGetter","F","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","constructor","functionUncurryThisAccessor","aPossiblePrototype","uncurryThisAccessor","objectSetPrototypeOf","CORRECT_SETTER","setter","proto","NATIVE_ARRAY_BUFFER","require$$8","require$$9","require$$10","require$$11","getPrototypeOf","require$$12","setPrototypeOf","require$$13","require$$14","require$$15","require$$16","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG_REQUIRED","NAME","Constructor","Prototype","TypedArrayConstructorsList","BigIntArrayConstructorsList","isView","klass","getTypedArrayConstructor","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","arrayBufferViewCore","ArrayBufferViewCore","context","Rails","nonce","ref","expando","m","element","selector","isEditable","csrfParam","csrfToken","meta","xhr","token","param","CustomEvent","fire","matches","preventDefault","event","params","evt","e","eventType","handler","AcceptHeaders","CSRFProtection","createXHR","cspNonce","prepareOptions","processResponse","response","done","type","parser","script","url","originAnchor","urlAnchor","toArray","additionalParam","inputs","option","form","allowAction","stopEverything","message","answer","callback","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","formElements","getData","isContentEditable","isXhrRedirect","setData","originalText","formContent","href","link","ajax","isCrossDomain","isRemote","serializeElement","slice","button","dataType","withCredentials","args","insignificantMetaClick","metaClick","nonPrimaryMouseClick","delegate","disableElement","enableElement","formSubmitButtonClick","handleConfirm","handleDisabledElement","handleMethod","handleRemote","loadCSPNonce","preventInsignificantClick","refreshCSRFTokens","originalOptions","module","State","ModuleClass","item","values","config","LogLevel","level","light","dark","logger","Message","domain","color","LEVELS","Inspector","msgs","stage","space","branch","indent","child","inspector","startAtDomContentLoaded","startAuto","Modes","Options","settings","start","query","isProduction","Collection","collectable","clone","Module","ns","notation","querySelectorAllArray","selectors","queryParentSelector","parent","Registration","InstanceClass","creator","dashed","prototype","instanceClassName","node","nonRecursive","nodes","instance","instances","Register","registration","count","Element$1","scope","end","projects","descendants","elements","stopAtInstanceClassName","stopAtFirstInstance","attributeName","attributeNames","RootEmission","KeyCodes","getKeyCode","keyCode","entry","Root","Stage","position","mutations","examinations","mutation","descendant","targets","disposables","disposable","registrations","creations","Renderer","nexts","Resizer","requesting","ScrollLocker","scrollBarGap","Load","FONT_FAMILIES","FontSwap","families","family","MouseMove","Hash","hash","Engine","registerModule","engine","Colors","use","tint","getOption","decision","colors","sanitize","className","getClassNames","modifyClass","remove","classNames","addClass","removeClass","hasClass","ACTIONS","ACTIONS_SELECTOR","queryActions","counter","uniqueId","base","dom","supportLocalStorage","supportAspectRatio","support","TransitionSelector","completeAssign","sources","sym","searchParams","entries","internals","legacy","api$1","configuration","Emitter","closure","Breakpoint","minWidth","Breakpoints","Instance","jsAttribute","detail","bubbles","cancelable","listeners","listener","Listener","removal","add","action","HashAction","stopPropagation","KeyAction","code","breakpoint","point","append","propertyName","closest","actions","rect","scroll","DisclosureEvent","DisclosureEmission","Disclosure","DisclosureButtonInstanceClass","disclosuresGroupInstanceClassName","proxy","group","withhold","preventFocus","canDisclose","candidates","isEnabled","DisclosureButton","buttonRect","DisclosuresGroup","disclosureInstanceClassName","proxyAccessors","member","members","invalid","bypassPrevention","defaultIndex","DisclosureType","DisclosureSelector","CollapseButton","CollapseSelector","Collapse","height","primary","before","candidate","mins","a","b","CollapsesGroup","EquisizedEmission","Equisized","width","EquisizedsGroup","equisizeds","equisized","ToggleEvent","Toggle","RootSelector","setAttributes","attrs","InjectSvg","xmlDoc","svgAttributes","InjectSvgSelector","Artwork","splitUrl","ArtworkSelector","AssessSelector","AssessEmission","AssessFile","extension","elem","regexExtension","locale","bytes","sizeUnits","size","roundedSize","stringSize","AssessDetail","details","ratiosImg","ratiosVid","ratioSelector","modifiers","modifier","deprecatedRatioSelector","RatioSelector","api","Ratio","ratio","PlaceSelector","AlignSelector","PlacementPosition","PlacementAlign","PlacementMode","Placement","mode","places","aligns","safeAreaMargin","referent","y","place","align","PlacementReferent","SchemeValue","SchemeAttribute","SchemeTheme","SchemeEmission","SchemeEvent","Scheme","scheme","schemeAttr","SchemeSelector","ACCORDION","COLLAPSE$2","AccordionSelector","Accordion","AccordionsGroup","ButtonSelector","CardDownload","CardSelector","BreadcrumbSelector","Breadcrumb","collapse","links","TooltipSelector","TooltipReferentState","TooltipReferent","mouseover","mouseout","TooltipEvent","TooltipState","Tooltip","limit","ToggleInput","ToggleStatusLabel","checked","style","maxWidth","style2","ToggleSelector","ITEM$1","COLLAPSE$1","SidemenuSelector","SidemenuList","SidemenuItem","ModalSelector","ModalButton","ModalAttribute","Modal","title","unordereds","UNORDEREDS","ordereds","ORDEREDS","isFocusable","container","FocusTrap","onTrap","onUntrap","focusables","Stunned","first","last","radios","groups","radio","RadioButtonGroup","unordered","noDuplicates","ModalsGroup","initial","OFFSET","ModalBody","offset","PasswordEmission","PasswordToggle","Password","PasswordSelector","PasswordInput","PasswordLabel","valueREM","ITEM","COLLAPSE","NavigationSelector","NavigationItem","right","left","NavigationMousePosition","Navigation","TabButton","TabSelector","TabPanelDirection","TabPanel","direction","TabKeys","TabEmission","TabsGroup","paneHeight","FOCALIZE_OFFSET","SCROLL_OFFSET$1","TabsList","btn","btnRect","listRect","actualScroll","scrollLeft","isMin","isMax","isRtl","minSelector","maxSelector","TableEmission","PADDING","Table","TableSelector","SCROLL_OFFSET","TableElement","TableCaption","TagEvent","TagDismissible","TagSelector","TRANSCRIPTION","TranscriptionSelector","Transcription","TileDownload","TileSelector","HeaderSelector","HeaderLinks","header","copySuffix","toolsHtml","HeaderModal","modal","DisplaySelector","Display","INITIALIZE_EVENT","START_EVENT","PROGRESS_EVENT","ERROR_EVENT","END_EVENT","addUploadEventListener","file","ProgressBar","progress","errorMsg","errorFromDirectUploadMessage","FAILURE_CLIENT","ERROR_CODE_READ","_a","TOGGLE_SOURCE_SELECTOR","targetSelector","targetElements","toggle","touch","classList","toggleCondidentielExplanation","showMotivation","motivationCancel","stateElement","show","enable","hide","disable","showDeleteJustificatif","justificatif","isInputElement","deleteJustificatif","showImportJustificatif","showFusion","showNewAccount","application","Application","registerControllers","DS","ActiveStorage.start","Turbo.session","__vitePreload"],"sources":["../../../node_modules/core-js/internals/global.js","../../../node_modules/core-js/internals/fails.js","../../../node_modules/core-js/internals/descriptors.js","../../../node_modules/core-js/internals/function-bind-native.js","../../../node_modules/core-js/internals/function-call.js","../../../node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/core-js/internals/function-uncurry-this.js","../../../node_modules/core-js/internals/classof-raw.js","../../../node_modules/core-js/internals/indexed-object.js","../../../node_modules/core-js/internals/is-null-or-undefined.js","../../../node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/core-js/internals/document-all.js","../../../node_modules/core-js/internals/is-callable.js","../../../node_modules/core-js/internals/is-object.js","../../../node_modules/core-js/internals/get-built-in.js","../../../node_modules/core-js/internals/object-is-prototype-of.js","../../../node_modules/core-js/internals/engine-user-agent.js","../../../node_modules/core-js/internals/engine-v8-version.js","../../../node_modules/core-js/internals/symbol-constructor-detection.js","../../../node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/core-js/internals/is-symbol.js","../../../node_modules/core-js/internals/try-to-string.js","../../../node_modules/core-js/internals/a-callable.js","../../../node_modules/core-js/internals/get-method.js","../../../node_modules/core-js/internals/ordinary-to-primitive.js","../../../node_modules/core-js/internals/define-global-property.js","../../../node_modules/core-js/internals/shared-store.js","../../../node_modules/core-js/internals/shared.js","../../../node_modules/core-js/internals/to-object.js","../../../node_modules/core-js/internals/has-own-property.js","../../../node_modules/core-js/internals/uid.js","../../../node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/core-js/internals/to-primitive.js","../../../node_modules/core-js/internals/to-property-key.js","../../../node_modules/core-js/internals/document-create-element.js","../../../node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../../node_modules/core-js/internals/an-object.js","../../../node_modules/core-js/internals/object-define-property.js","../../../node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/core-js/internals/function-name.js","../../../node_modules/core-js/internals/inspect-source.js","../../../node_modules/core-js/internals/weak-map-basic-detection.js","../../../node_modules/core-js/internals/shared-key.js","../../../node_modules/core-js/internals/hidden-keys.js","../../../node_modules/core-js/internals/internal-state.js","../../../node_modules/core-js/internals/make-built-in.js","../../../node_modules/core-js/internals/define-built-in.js","../../../node_modules/core-js/internals/math-trunc.js","../../../node_modules/core-js/internals/to-integer-or-infinity.js","../../../node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/core-js/internals/to-length.js","../../../node_modules/core-js/internals/length-of-array-like.js","../../../node_modules/core-js/internals/array-includes.js","../../../node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/core-js/internals/own-keys.js","../../../node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/core-js/internals/is-forced.js","../../../node_modules/core-js/internals/export.js","../../../node_modules/core-js/internals/to-string-tag-support.js","../../../node_modules/core-js/internals/classof.js","../../../node_modules/core-js/internals/to-string.js","../../../node_modules/core-js/modules/es.string.at-alternative.js","../../../node_modules/core-js/internals/object-keys.js","../../../node_modules/core-js/internals/object-define-properties.js","../../../node_modules/core-js/internals/html.js","../../../node_modules/core-js/internals/object-create.js","../../../node_modules/core-js/internals/add-to-unscopables.js","../../../node_modules/core-js/modules/es.array.at.js","../../../node_modules/core-js/internals/array-buffer-basic-detection.js","../../../node_modules/core-js/internals/define-built-in-accessor.js","../../../node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../../node_modules/core-js/internals/a-possible-prototype.js","../../../node_modules/core-js/internals/object-set-prototype-of.js","../../../node_modules/core-js/internals/array-buffer-view-core.js","../../../node_modules/core-js/modules/es.typed-array.at.js","../../../node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","../../../node_modules/@gouvfr/dsfr/dist/dsfr.module.js","../../../app/javascript/shared/activestorage/ujs.js","../../../app/javascript/shared/safari-11-empty-file-workaround.ts","../../../app/javascript/shared/toggle-target.js","../../../app/javascript/new_design/form-validation.js","../../../app/javascript/new_design/avis.js","../../../app/javascript/new_design/instruction-button.ts","../../../app/javascript/new_design/fc-fusion.js","../../../app/javascript/entrypoints/application.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.31.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.31.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-array-string-prototype-at -- safe\n return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'String', proto: true, forced: FORCED }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'Array', proto: true }, {\n at: function at(index) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n }\n});\n\naddToUnscopables('at');\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n var context = this;\n\n (function() {\n (function() {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\n nonce = null;\n\n Rails.loadCSPNonce = function() {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function() {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n\n }).call(this);\n (function() {\n var expando, m;\n\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function(element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function(element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function(element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n\n Rails.isContentEditable = function(element) {\n var isEditable;\n isEditable = false;\n while (true) {\n if (element.isContentEditable) {\n isEditable = true;\n break;\n }\n element = element.parentElement;\n if (!element) {\n break;\n }\n }\n return isEditable;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function(xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function() {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n }\n return result;\n };\n }\n\n fire = Rails.fire = function(obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function(e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function(element, selector, eventType, handler) {\n return element.addEventListener(eventType, function(e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function(options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function() {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n\n Rails.href = function(element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function(url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n } catch (error) {\n e = error;\n return true;\n }\n };\n\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function(option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function(param) {\n if (param.name != null) {\n return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function(form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function(el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function(e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function(message, element) {\n return confirm(message);\n };\n\n allowAction = function(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements, isContentEditable = Rails.isContentEditable;\n\n Rails.handleDisabledElement = function(e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function(e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n\n }).call(this);\n (function() {\n var isContentEditable, stopEverything;\n\n stopEverything = Rails.stopEverything;\n\n isContentEditable = Rails.isContentEditable;\n\n Rails.handleMethod = function(e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n if (isContentEditable(this)) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n\n }).call(this);\n (function() {\n var ajax, fire, getData, isContentEditable, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement, isContentEditable = Rails.isContentEditable;\n\n isRemote = function(element) {\n var value;\n value = element.getAttribute('data-remote');\n return (value != null) && value !== 'false';\n };\n\n Rails.handleRemote = function(e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n if (isContentEditable(element)) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: (withCredentials != null) && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function(e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function(e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = (e.button != null) && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function() {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function() {\n $(Rails.formEnableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n return setTimeout((function() {\n return disableElement(e);\n }), 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n","/*! DSFR v1.10.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */\n\nclass 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\nconst config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.10.1'\r\n};\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\nconst startAtDomContentLoaded = (callback) => {\n if (document.readyState !== 'loading') window.requestAnimationFrame(callback);\n else document.addEventListener('DOMContentLoaded', callback);\n};\n\nconst startAuto = (callback) => {\n // detect\n startAtDomContentLoaded(callback);\n};\n\nconst Modes = {\n AUTO: 'auto',\n MANUAL: 'manual',\n RUNTIME: 'runtime',\n LOADED: 'loaded',\n VUE: 'vue',\n ANGULAR: 'angular',\n REACT: 'react'\n};\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();\n\nclass 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\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\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\nconst querySelectorAllArray = (element, selectors) => Array.prototype.slice.call(element.querySelectorAll(selectors));\n\nconst 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\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\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\nlet count = 0;\n\nclass Element$1 {\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\nconst RootEmission = {\n CLICK: ns.emission('root', 'click'),\n KEYDOWN: ns.emission('root', 'keydown'),\n KEYUP: ns.emission('root', 'keyup')\n};\n\nconst 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\nconst getKeyCode = (keyCode) => Object.values(KeyCodes).filter(entry => entry.value === keyCode)[0];\n\nclass Root extends Element$1 {\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\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$1(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\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\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\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\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\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\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\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\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();\n\nclass 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\nconst sanitize = (className) => className.charAt(0) === '.' ? className.substr(1) : className;\n\nconst getClassNames = (element) => element.className ? element.className.split(' ') : [];\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\nconst removeClass = (element, className) => modifyClass(element, className, true);\n\nconst hasClass = (element, className) => getClassNames(element).indexOf(sanitize(className)) > -1;\n\nconst 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\nconst queryActions = (element) => {\n return element.querySelectorAll(ACTIONS_SELECTOR);\n};\n\nlet counter = 0;\n\nconst 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\nconst dom = {};\n\ndom.addClass = addClass;\ndom.hasClass = hasClass;\ndom.removeClass = removeClass;\ndom.queryParentSelector = queryParentSelector;\ndom.querySelectorAllArray = querySelectorAllArray;\ndom.queryActions = queryActions;\ndom.uniqueId = uniqueId;\n\nconst 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\nconst support = {};\n\nsupport.supportLocalStorage = supportLocalStorage;\n\nsupport.supportAspectRatio = supportAspectRatio;\n\nconst TransitionSelector = {\n NONE: ns.selector('transition-none')\n};\n\nconst selector = {};\n\nselector.TransitionSelector = TransitionSelector;\n\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\nconst property = {};\n\nproperty.completeAssign = completeAssign;\n\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\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.support = support;\ninternals.motion = selector;\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\nconst api$1 = (node) => {\n const stage = state.getModule('stage');\n return stage.getProxy(node);\n};\n\napi$1.version = config.version;\napi$1.prefix = config.prefix;\napi$1.organisation = config.organisation;\napi$1.Modes = Modes;\n\nObject.defineProperty(api$1, 'mode', {\n set: (value) => { options.mode = value; },\n get: () => options.mode\n});\n\napi$1.internals = internals;\napi$1.version = config.version;\n\napi$1.start = engine.start;\napi$1.stop = engine.stop;\n\napi$1.inspector = inspector;\napi$1.colors = colors;\n\nconst configuration = window[config.namespace];\napi$1.internals.configuration = configuration;\n\noptions.configure(configuration, api$1.start, api$1.internals.query);\n\nwindow[config.namespace] = api$1;\n\nclass 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\nclass 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\nconst 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\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.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 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 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 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._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\nconst DisclosureEvent = {\n DISCLOSE: ns.event('disclose'),\n CONCEAL: ns.event('conceal')\n};\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\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\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\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 }\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.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 };\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 (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 apply () {}\n\n dispose () {\n super.dispose();\n this.descend(DisclosureEmission.UNGROUP);\n this._members = null;\n }\n}\n\nconst 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\nconst DisclosureSelector = {\n PREVENT_CONCEAL: ns.attr.selector('prevent-conceal')\n};\n\nclass CollapseButton extends DisclosureButton {\n constructor () {\n super(DisclosureType.EXPAND);\n }\n\n static get instanceClassName () {\n return 'CollapseButton';\n }\n}\n\nconst CollapseSelector = {\n COLLAPSE: ns.selector('collapse'),\n COLLAPSING: ns.selector('collapsing')\n};\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.transitionend.bind(this));\n }\n\n transitionend (e) {\n this.removeClass(CollapseSelector.COLLAPSING);\n if (!this.isDisclosed) {\n if (this.isLegacy) this.style.maxHeight = '';\n else this.style.removeProperty('--collapse-max-height');\n }\n }\n\n unbound () {\n if (this.isLegacy) this.style.maxHeight = 'none';\n else this.style.setProperty('--collapse-max-height', 'none');\n }\n\n disclose (withhold) {\n if (this.isDisclosed === true || !this.isEnabled) return false;\n this.unbound();\n this.request(() => {\n this.addClass(CollapseSelector.COLLAPSING);\n this.adjust();\n this.request(() => {\n super.disclose(withhold);\n });\n });\n }\n\n conceal (withhold, preventFocus) {\n if (this.isDisclosed === false) return false;\n this.request(() => {\n this.addClass(CollapseSelector.COLLAPSING);\n this.adjust();\n this.request(() => {\n super.conceal(withhold, preventFocus);\n });\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\nclass CollapsesGroup extends DisclosuresGroup {\n constructor () {\n super('Collapse');\n }\n\n static get instanceClassName () {\n return 'CollapsesGroup';\n }\n}\n\nconst EquisizedEmission = {\n CHANGE: ns('equisized')\n};\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\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\nconst ToggleEvent = {\n TOGGLE: ns.event('toggle')\n};\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\nconst RootSelector = {\n ROOT: ':root'\n};\n\nconst setAttributes = (el, attrs) => {\n Object.keys(attrs).forEach(key => el.setAttribute(key, attrs[key]));\n};\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\nconst InjectSvgSelector = {\n INJECT_SVG: `[${ns.attr('inject-svg')}]`\n};\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\nconst ArtworkSelector = {\n ARTWORK_USE: `${ns.selector('artwork')} use`\n};\n\nconst 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\nconst AssessEmission = {\n UPDATE: ns.emission('assess', 'update'),\n ADDED: ns.emission('assess', 'added')\n};\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\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\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\nconst RatioSelector = {\n RATIO: `${ns.selector('ratio')}, ${ratioSelector('ratio', ratiosImg)}, ${deprecatedRatioSelector}`\n};\n\nconst api = window[config.namespace];\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\nconst 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\nconst AlignSelector = {\n START: ns.selector('placement--start'),\n CENTER: ns.selector('placement--center'),\n END: ns.selector('placement--end')\n};\n\nconst PlacementPosition = {\n TOP: 'place_top',\n RIGHT: 'place_right',\n BOTTOM: 'place_bottom',\n LEFT: 'place_left'\n};\n\nconst PlacementAlign = {\n START: 'align_start',\n CENTER: 'align_center',\n END: 'align_end'\n};\n\nconst PlacementMode = {\n AUTO: 'placement_auto',\n MANUAL: 'placement_manual'\n};\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\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\napi$1.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\napi$1.internals.register(api$1.core.CollapseSelector.COLLAPSE, api$1.core.Collapse);\napi$1.internals.register(api$1.core.InjectSvgSelector.INJECT_SVG, api$1.core.InjectSvg);\napi$1.internals.register(api$1.core.RatioSelector.RATIO, api$1.core.Ratio);\napi$1.internals.register(api$1.core.AssessSelector.ASSESS_FILE, api$1.core.AssessFile);\napi$1.internals.register(api$1.core.AssessSelector.DETAIL, api$1.core.AssessDetail);\n\nconst SchemeValue = {\n SYSTEM: 'system',\n LIGHT: 'light',\n DARK: 'dark'\n};\n\nconst SchemeAttribute = {\n THEME: api.internals.ns.attr('theme'),\n SCHEME: api.internals.ns.attr('scheme'),\n TRANSITION: api.internals.ns.attr('transition')\n};\n\nconst SchemeTheme = {\n LIGHT: 'light',\n DARK: 'dark'\n};\n\nconst 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\nconst SchemeEvent = {\n SCHEME: api.internals.ns.event('scheme'),\n THEME: api.internals.ns.event('theme')\n};\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 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\nconst 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\napi.scheme = {\n Scheme: Scheme,\n SchemeValue: SchemeValue,\n SchemeSelector: SchemeSelector,\n SchemeEmission: SchemeEmission,\n SchemeTheme: SchemeTheme,\n SchemeEvent: SchemeEvent\n};\n\napi.internals.register(api.scheme.SchemeSelector.SCHEME, api.scheme.Scheme);\n\nconst ACCORDION = api.internals.ns.selector('accordion');\nconst COLLAPSE$2 = api.internals.ns.selector('collapse');\n\nconst AccordionSelector = {\n GROUP: api.internals.ns.selector('accordions-group'),\n ACCORDION: ACCORDION,\n COLLAPSE: `${ACCORDION} > ${COLLAPSE$2}, ${ACCORDION} > *:not(${ACCORDION}):not(${COLLAPSE$2}) > ${COLLAPSE$2}, ${ACCORDION} > *:not(${ACCORDION}):not(${COLLAPSE$2}) > *:not(${ACCORDION}):not(${COLLAPSE$2}) > ${COLLAPSE$2}`,\n COLLAPSE_LEGACY: `${ACCORDION} ${COLLAPSE$2}`,\n BUTTON: `${ACCORDION}__btn`\n};\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\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\napi.accordion = {\n Accordion: Accordion,\n AccordionSelector: AccordionSelector,\n AccordionsGroup: AccordionsGroup\n};\n\napi.internals.register(api.accordion.AccordionSelector.GROUP, api.accordion.AccordionsGroup);\napi.internals.register(api.accordion.AccordionSelector.ACCORDION, api.accordion.Accordion);\n\nconst 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\napi.button = {\n ButtonSelector: ButtonSelector\n};\n\napi.internals.register(api.button.ButtonSelector.EQUISIZED_BUTTON, api.core.Equisized);\napi.internals.register(api.button.ButtonSelector.EQUISIZED_GROUP, api.core.EquisizedsGroup);\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\nconst 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\napi.card = {\n CardSelector: CardSelector,\n CardDownload: CardDownload\n};\n\napi.internals.register(api.card.CardSelector.DOWNLOAD, api.card.CardDownload);\napi.internals.register(api.card.CardSelector.DOWNLOAD_DETAIL, api.core.AssessDetail);\n\nconst BreadcrumbSelector = {\n BREADCRUMB: api.internals.ns.selector('breadcrumb'),\n BUTTON: api.internals.ns.selector('breadcrumb__button')\n};\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\napi.breadcrumb = {\n BreadcrumbSelector: BreadcrumbSelector,\n Breadcrumb: Breadcrumb\n};\n\napi.internals.register(api.breadcrumb.BreadcrumbSelector.BREADCRUMB, api.breadcrumb.Breadcrumb);\n\nconst 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\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\nconst TooltipEvent = {\n SHOW: ns.event('show'),\n HIDE: ns.event('hide')\n};\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\napi.tooltip = {\n Tooltip: Tooltip,\n TooltipSelector: TooltipSelector,\n TooltipEvent: TooltipEvent\n};\n\napi.internals.register(api.tooltip.TooltipSelector.TOOLTIP, api.tooltip.Tooltip);\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\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\nconst 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\n// import { ToggleInput } from './script/toggle/toggle-input.js';\n\napi.toggle = {\n ToggleStatusLabel: ToggleStatusLabel,\n ToggleSelector: ToggleSelector\n};\n\napi.internals.register(api.toggle.ToggleSelector.STATUS_LABEL, api.toggle.ToggleStatusLabel);\n\nconst ITEM$1 = api.internals.ns.selector('sidemenu__item');\nconst COLLAPSE$1 = api.internals.ns.selector('collapse');\n\nconst SidemenuSelector = {\n LIST: api.internals.ns.selector('sidemenu__list'),\n COLLAPSE: `${ITEM$1} > ${COLLAPSE$1}, ${ITEM$1} > *:not(${ITEM$1}):not(${COLLAPSE$1}) > ${COLLAPSE$1}, ${ITEM$1} > *:not(${ITEM$1}):not(${COLLAPSE$1}) > *:not(${ITEM$1}):not(${COLLAPSE$1}) > ${COLLAPSE$1}`,\n COLLAPSE_LEGACY: `${ITEM$1} ${COLLAPSE$1}`,\n ITEM: api.internals.ns.selector('sidemenu__item'),\n BUTTON: api.internals.ns.selector('sidemenu__btn')\n};\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\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\napi.sidemenu = {\n SidemenuList: SidemenuList,\n SidemenuItem: SidemenuItem,\n SidemenuSelector: SidemenuSelector\n};\n\napi.internals.register(api.sidemenu.SidemenuSelector.LIST, api.sidemenu.SidemenuList);\napi.internals.register(api.sidemenu.SidemenuSelector.ITEM, api.sidemenu.SidemenuItem);\n\nconst 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\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\nconst ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\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\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 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\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 (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\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\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\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\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\nconst PasswordEmission = {\n TOGGLE: api.internals.ns.emission('password', 'toggle'),\n ADJUST: api.internals.ns.emission('password', 'adjust')\n};\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\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\nconst 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\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\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\napi.password = {\n Password: Password,\n PasswordToggle: PasswordToggle,\n PasswordSelector: PasswordSelector,\n PasswordInput: PasswordInput,\n PasswordLabel: PasswordLabel\n};\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\nconst ITEM = api.internals.ns.selector('nav__item');\nconst COLLAPSE = api.internals.ns.selector('collapse');\n\nconst 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\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\nconst NavigationMousePosition = {\n NONE: -1,\n INSIDE: 0,\n OUTSIDE: 1\n};\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.listen('focusout', this.focusOutHandler.bind(this));\n this.listen('mousedown', this.mouseDownHandler.bind(this));\n this.listenClick({ capture: 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 mouseDownHandler (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 clickHandler (e) {\n if (e.target.matches('a, button') && !e.target.matches('[aria-controls]') && !e.target.matches(api.core.DisclosureSelector.PREVENT_CONCEAL)) this.index = -1;\n }\n\n focusOutHandler (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG)) return;\n this.out = true;\n this.requestPosition();\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\napi.navigation = {\n Navigation: Navigation,\n NavigationItem: NavigationItem,\n NavigationMousePosition: NavigationMousePosition,\n NavigationSelector: NavigationSelector\n};\n\napi.internals.register(api.navigation.NavigationSelector.NAVIGATION, api.navigation.Navigation);\napi.internals.register(api.navigation.NavigationSelector.ITEM, api.navigation.NavigationItem);\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\nconst 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\nconst TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\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\nconst TabKeys = {\n LEFT: 'tab_keys_left',\n RIGHT: 'tab_keys_right',\n HOME: 'tab_keys_home',\n END: 'tab_keys_end'\n};\n\nconst TabEmission = {\n PRESS_KEY: api.internals.ns.emission('tab', 'press_key'),\n LIST_HEIGHT: api.internals.ns.emission('tab', 'list_height')\n};\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\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET$1 = 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$1;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET$1;\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$1;\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\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector,\n TabEmission: TabEmission\n};\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\nconst 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};\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.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\nconst 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};\n\nconst SCROLL_OFFSET = 8; // 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.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\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\napi.table = {\n Table: Table,\n TableElement: TableElement,\n TableCaption: TableCaption,\n TableSelector: TableSelector\n};\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);\n\nconst TagEvent = {\n DISMISS: api.internals.ns.event('dismiss')\n};\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\nconst TagSelector = {\n PRESSABLE: `${api.internals.ns.selector('tag')}[aria-pressed]`,\n DISMISSIBLE: `${api.internals.ns.selector('tag--dismiss')}`\n};\n\napi.tag = {\n TagDismissible: TagDismissible,\n TagSelector: TagSelector,\n TagEvent: TagEvent\n};\n\napi.internals.register(api.tag.TagSelector.PRESSABLE, api.core.Toggle);\napi.internals.register(api.tag.TagSelector.DISMISSIBLE, api.tag.TagDismissible);\n\nconst TRANSCRIPTION = api.internals.ns.selector('transcription');\n\nconst TranscriptionSelector = {\n TRANSCRIPTION: TRANSCRIPTION,\n BUTTON: `${TRANSCRIPTION}__btn`\n};\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\napi.transcription = {\n Transcription: Transcription,\n TranscriptionSelector: TranscriptionSelector\n};\n\napi.internals.register(api.transcription.TranscriptionSelector.TRANSCRIPTION, api.transcription.Transcription);\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\nconst 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\napi.tile = {\n TileSelector: TileSelector,\n TileDownload: TileDownload\n};\n\napi.internals.register(api.tile.TileSelector.DOWNLOAD, api.tile.TileDownload);\napi.internals.register(api.tile.TileSelector.DOWNLOAD_DETAIL, api.core.AssessDetail);\n\nconst 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\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\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 = toolsHtml;\n for (const element of this.menuLinks.querySelectorAll('[id]')) element.id = `${element.id}${copySuffix}`;\n for (const element of this.menuLinks.querySelectorAll('[aria-controls]')) {\n element.setAttribute('aria-controls', `${element.getAttribute('aria-controls')}${copySuffix}`);\n }\n }\n }\n}\n\nclass HeaderModal extends api.core.Instance {\n constructor () {\n super();\n this._clickHandling = this.clickHandler.bind(this);\n }\n\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.listen('click', this._clickHandling, { 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.unlisten('click', this._clickHandling, { capture: true });\n }\n\n clickHandler (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\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\napi.internals.register(api.header.HeaderSelector.TOOLS_LINKS, api.header.HeaderLinks);\napi.internals.register(api.header.HeaderSelector.MODALS, api.header.HeaderModal);\n\nconst 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\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\napi.display = {\n Display: Display,\n DisplaySelector: DisplaySelector\n};\n\napi.internals.register(api.display.DisplaySelector.DISPLAY, api.display.Display);\n//# sourceMappingURL=dsfr.module.js.map\n","import ProgressBar from './progress-bar';\nimport {\n errorFromDirectUploadMessage,\n ERROR_CODE_READ,\n FAILURE_CLIENT\n} from './file-upload-error';\nimport { fire } from '@utils';\n\nconst INITIALIZE_EVENT = 'direct-upload:initialize';\nconst START_EVENT = 'direct-upload:start';\nconst PROGRESS_EVENT = 'direct-upload:progress';\nconst ERROR_EVENT = 'direct-upload:error';\nconst END_EVENT = 'direct-upload:end';\n\nfunction addUploadEventListener(type, handler) {\n addEventListener(type, (event) => {\n // Internet Explorer and Edge will sometime replay Javascript events\n // that were dispatched just before a page navigation (!), but without\n // the event payload.\n //\n // Ignore these replayed events.\n const isEventValid = event && event.detail && event.detail.id != undefined;\n if (!isEventValid) return;\n\n handler(event);\n });\n}\n\naddUploadEventListener(INITIALIZE_EVENT, ({ target, detail: { id, file } }) => {\n ProgressBar.init(target, id, file);\n});\n\naddUploadEventListener(START_EVENT, ({ target, detail: { id } }) => {\n ProgressBar.start(id);\n // At the end of the upload, the form will be submitted again.\n // Avoid the confirm dialog to be presented again then.\n const button = target.form.querySelector('button.primary');\n if (button) {\n button.removeAttribute('data-confirm');\n }\n});\n\naddUploadEventListener(PROGRESS_EVENT, ({ detail: { id, progress } }) => {\n ProgressBar.progress(id, progress);\n});\n\naddUploadEventListener(ERROR_EVENT, (event) => {\n let id = event.detail.id;\n let errorMsg = event.detail.error;\n\n // Display an error message\n alert(\n `Nous sommes désolés, une erreur s’est produite lors de l’envoi du fichier.\n\n (${errorMsg})`\n );\n // Prevent ActiveStorage from displaying its own error message\n event.preventDefault();\n\n ProgressBar.error(id, errorMsg);\n\n // Report unexpected client errors to Sentry.\n // (But ignore usual client errors, or errors we can monitor better on the server side.)\n let error = errorFromDirectUploadMessage(errorMsg);\n if (error.failureReason == FAILURE_CLIENT && error.code != ERROR_CODE_READ) {\n fire(document, 'sentry:capture-exception', error);\n }\n});\n\naddUploadEventListener(END_EVENT, ({ detail: { id } }) => {\n ProgressBar.end(id);\n});\n","// iOS 11.3 Safari / macOS Safari 11.1 empty XHR bug workaround.\n// This should work with every modern browser which supports ES5 (including IE9).\n// https://stackoverflow.com/questions/49614091/safari-11-1-ajax-xhr-form-submission-fails-when-inputtype-file-is-empty\n// https://github.com/rails/rails/issues/32440\n\ndocument.documentElement.addEventListener(\n 'turbo:before-fetch-request',\n (event) => {\n const target = event.target as Element;\n const inputs = target.querySelectorAll(\n 'input[type=\"file\"]:not([disabled])'\n );\n for (const input of inputs) {\n if (input.files?.length == 0) {\n input.setAttribute('data-safari-temp-disabled', 'true');\n input.setAttribute('disabled', '');\n }\n }\n }\n);\n\ndocument.documentElement.addEventListener(\n 'turbo:before-fetch-response',\n (event) => {\n const target = event.target as Element;\n const inputs = target.querySelectorAll(\n 'input[type=\"file\"][data-safari-temp-disabled]'\n );\n for (const input of inputs) {\n input.removeAttribute('data-safari-temp-disabled');\n input.removeAttribute('disabled');\n }\n }\n);\n\nexport {};\n","import { delegate, toggle } from '@utils';\n\n// Unobtrusive Javascript for allowing an element to toggle\n// the visibility of another element.\n//\n// Usage:\n// \n// Content
\n\nconst TOGGLE_SOURCE_SELECTOR = '[data-toggle-target]';\n\ndelegate('click', TOGGLE_SOURCE_SELECTOR, (evt) => {\n evt.preventDefault();\n\n const targetSelector = evt.target.dataset.toggleTarget;\n const targetElements = document.querySelectorAll(targetSelector);\n for (let target of targetElements) {\n toggle(target);\n target.focus();\n }\n});\n","import { delegate } from '@utils';\n\ndelegate('blur keydown', 'input, textarea', ({ target }) => {\n touch(target);\n});\n\ndelegate(\n 'click',\n 'input[type=\"submit\"]:not([formnovalidate])',\n ({ target }) => {\n let form = target.closest('form');\n let inputs = form ? form.querySelectorAll('input, textarea') : [];\n [...inputs].forEach(touch);\n }\n);\n\nfunction touch({ classList }) {\n classList.add('touched');\n}\n","import { toggle } from '@utils';\n\nexport function toggleCondidentielExplanation() {\n toggle(document.querySelector('.confidentiel-explanation'));\n}\n","import { isInputElement } from '@coldwired/utils';\nimport { show, hide, disable, enable } from '@coldwired/actions';\n\nexport function showMotivation(event: Event, state: string) {\n event.preventDefault();\n motivationCancel();\n const stateElement = document.querySelector(`.motivation.${state}`);\n\n if (stateElement) {\n show(stateElement.parentElement);\n show(stateElement);\n stateElement.querySelectorAll('input, textarea').forEach(enable);\n }\n}\n\nexport function motivationCancel() {\n document.querySelectorAll('.motivation').forEach((stateElement) => {\n hide(stateElement);\n hide(stateElement.parentElement);\n stateElement.querySelectorAll('input, textarea').forEach(disable);\n });\n\n hide('.js_delete_motivation');\n}\n\nexport function showDeleteJustificatif(name: string) {\n const justificatif = document.querySelector(\n `#dossier_justificatif_motivation_${name}`\n );\n\n if (isInputElement(justificatif)) {\n if (justificatif.value != '') {\n show(`#delete_motivation_import_${name}`);\n }\n }\n}\n\nexport function deleteJustificatif(name: string) {\n const justificatif = document.querySelector(\n `#dossier_justificatif_motivation_${name}`\n );\n if (isInputElement(justificatif)) {\n justificatif.value = '';\n hide(`#delete_motivation_import_${name}`);\n }\n}\n\nexport function showImportJustificatif(name: string) {\n show(`#justificatif_motivation_import_${name}`);\n hide(`#justificatif_motivation_suggest_${name}`);\n}\n","import { show, hide } from '@utils';\n\nexport function showFusion() {\n show(document.querySelector('.fusion'));\n hide(document.querySelector('.new-account'));\n hide(document.querySelector('#new-account-password-confirmation'));\n}\n\nexport function showNewAccount() {\n hide(document.querySelector('.fusion'));\n show(document.querySelector('.new-account'));\n hide(document.querySelector('#new-account-password-confirmation'));\n}\n","import 'core-js/proposals/relative-indexing-method';\nimport Rails from '@rails/ujs';\nimport * as ActiveStorage from '@rails/activestorage';\nimport * as Turbo from '@hotwired/turbo';\nimport { Application } from '@hotwired/stimulus';\nimport '@gouvfr/dsfr/dist/dsfr.module.js';\n\nimport '../shared/activestorage/ujs';\nimport '../shared/safari-11-empty-file-workaround';\nimport '../shared/toggle-target';\n\nimport { registerControllers } from '../shared/stimulus-loader';\n\nimport '../new_design/form-validation';\n\nimport { toggleCondidentielExplanation } from '../new_design/avis';\nimport {\n showMotivation,\n motivationCancel,\n showImportJustificatif,\n showDeleteJustificatif,\n deleteJustificatif\n} from '../new_design/instruction-button';\nimport { showFusion, showNewAccount } from '../new_design/fc-fusion';\n\nconst application = Application.start();\nregisterControllers(application);\n\n// This is the global application namespace where we expose helpers used from rails views\nconst DS = {\n toggleCondidentielExplanation,\n showMotivation,\n motivationCancel,\n showImportJustificatif,\n showDeleteJustificatif,\n deleteJustificatif,\n showFusion,\n showNewAccount\n};\n\n// Start Rails helpers\nActiveStorage.start();\nif (!window._rails_loaded) {\n Rails.start();\n}\nTurbo.session.drive = false;\n\n// Expose globals\nwindow.DS = window.DS || DS;\n\n// enable legacy mode of DSFR when vite is not detectde as modern browser\nwindow.addEventListener('load', function () {\n if (!window.__vite_is_modern_browser) {\n window.dsfr.internals.legacy.setLegacy();\n }\n});\n\nimport('../shared/track/matomo');\nimport('../shared/track/sentry');\n"],"file":"assets/application-2Hem6O1x.js"}