{"version":3,"mappings":"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","names":["sparkMd5","module","exports","factory","undefined$1","hex_chr","md5cycle","x","k","a","b","c","d","md5blk","s","md5blks","i","md5blk_array","md51","n","state","length","tail","tmp","lo","hi","md51_array","rhex","j","hex","clamp","val","from","to","begin","end","num","target","targetArray","sourceArray","toUtf8","str","utf8Str2ArrayBuffer","returnUInt8Array","buff","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","result","hexToBinaryString","bytes","SparkMD5","contents","raw","ret","content","hash","fileSlice","FileChecksum","file","callback","event","binaryDigest","base64digest","start","getMetaValue","name","element","findElement","findElements","root","selector","elements","toArray","dispatchEvent","type","eventInit","disabled","bubbles","cancelable","detail","value","BlobRecord","checksum","url","customHeaders","headerKey","csrfToken","responseType","response","direct_upload","key","BlobUpload","blob","headers","status","id","DirectUpload","delegate","error","notify","upload","object","methodName","messages","DirectUploadController","input","hiddenInput","attributes","progress","xhr","inputSelector","DirectUploadsController","form","controllers","startNextController","controller","processingAttribute","submitButtonsByForm","started","didClick","didSubmitForm","didSubmitRemoteElement","button","handleFormSubmissionEvent","inputs","disable","enable","submitForm","autostart","EventListener","eventTarget","eventName","eventOptions","binding","extendedEvent","extendEvent","left","right","leftIndex","rightIndex","stopImmediatePropagation","Dispatcher","application","eventListener","listeners","map","clearEventListeners","message","eventListenerMap","cacheKey","parts","defaultActionDescriptorFilters","descriptorPattern","parseActionDescriptorString","descriptorString","matches","keyFilter","parseEventTarget","parseEventOptions","eventTargetName","options","token","stringifyEventTarget","camelize","_","char","namespaceCamelize","capitalize","dasherize","tokenize","isSomething","hasProperty","property","allModifiers","Action","index","descriptor","schema","getDefaultEventNameForElement","eventFilter","filters","standardFilter","params","pattern","match","typecast","meta","ctrl","alt","shift","modifier","defaultEventNames","e","tagName","Binding","context","action","actionEvent","method","actionDescriptorFilters","passes","filter","currentTarget","identifier","ElementObserver","mutations","mutation","attributeName","nodes","node","tree","processor","AttributeObserver","add","fetch","del","prune","values","Multimap","set","size","_key","_values","SelectorObserver","details","selectors","_attributeName","matchedBefore","StringMapObserver","oldValue","attribute","TokenListObserver","unmatchedTokens","matchedTokens","tokens","previousTokens","currentTokens","firstDifferingIndex","zip","previousToken","currentToken","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","parseResult","valuesByToken","BindingObserver","ValueObserver","receiver","defaultValue","writer","rawValue","rawOldValue","changedMethodName","changedMethod","valueDescriptorMap","descriptors","hasMethodName","TargetObserver","_a","readInheritableStaticArrayValues","constructor","propertyName","ancestors","getAncestorsForConstructor","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","definition","OutletObserver","outletName","observer","_selector","outlet","hasOutlet","hasOutletController","_element","selectorObserver","attributeObserver","dependencies","identifiers","Context","scope","functionName","args","bless","shadow","getBlessedProperties","properties","shadowConstructor","extend","shadowProperties","getShadowProperties","blessedProperties","blessing","prototype","getOwnKeys","getShadowedDescriptor","shadowingDescriptor","extendWithReflect","extended","testReflectExtension","blessDefinition","Module","ClassMap","DataMap","Guide","logger","warnedKeys","attributeValueContainsToken","TargetSet","targetName","targetNames","targets","targetDescriptor","revisedAttributeName","OutletSet","controllerElement","outletNames","outlets","controllerAttribute","Scope","ScopeObserver","scopesByIdentifier","referenceCount","Router","contexts","afterLoad","defaultSchema","objectFromEntries","array","memo","v","Application","domReady","controllerConstructor","head","rest","resolve","ClassPropertiesBlessing","classDefinition","propertiesForClassDefinition","classes","OutletPropertiesBlessing","outletDefinition","propertiesForOutletDefinition","getOutletController","getControllerAndEnsureConnectedScope","outletController","camelizedName","outletElement","TargetPropertiesBlessing","targetDefinition","propertiesForTargetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","propertiesForValueDefinitionPair","read","write","typeDefinition","valueDescriptorForTokenAndTypeDefinition","parseValueTypeConstant","constant","parseValueTypeDefault","parseValueTypeObject","payload","typeObject","hasType","hasDefault","fullObject","onlyType","onlyDefault","typeFromObject","typeFromDefaultValue","propertyPath","parseValueTypeDefinition","typeFromConstant","defaultValueForDefinition","defaultValuesByType","constantFromType","readers","writers","writeString","writeJSON","Controller","_identifier","_application","prefix","invariant","condition","PENDING_CLASS","ERROR_CLASS","COMPLETE_CLASS","ProgressBar","clearErrors","html","getDirectUploadElement","getDirectUploadProgressElement","filename","template","container","slot","errorElements","ERROR_CODE_READ","ERROR_CODE_CREATE","ERROR_CODE_STORE","ERROR_CODE_ATTACH","FAILURE_CLIENT","FAILURE_SERVER","FAILURE_CONNECTIVITY","FileUploadError","code","isNetworkError","errorFromDirectUploadMessage","messageOrError","debounce","func","wait","immediate","timeout","timestamp","later","last","debounced","callNow","debounce_1","FOCUS_EVENTS","ACTIVE_EVENTS","ApplicationController","__privateAdd","_debounced","fn","interval","__privateGet","targetOrEventName","eventNameOrHandler","handler","disconnect","_ApiTokenAutorisationController","urlSearchParams","targetIds","customTargets","option","selectedOption","ApiTokenAutorisationController","_ApiTokenSecuriteController","ApiTokenSecuriteController","_AttestationController","checkbox","visible","_c","_b","tag","toggle","logoAttachmentLabel","AttestationController","AutofocusController","t","o","r","l","Z","u","f","N","it","h","lt","S","g","ft","M","q","O","P","R","C","U","G","Y","z","H","at","$","pt","W","Tt","dt","gt","B","xt","vt","m","X","I","y","K","V","Nt","AutoresizeController","_detach","isTextAreaElement","__privateSet","attach","BYTES_TO_MB_RATIO","Uploader","directUploadUrl","autoAttachUrl","maxFileSize","blobSignedId","reject","errorMsg","formData","httpRequest","errors","AutoUpload","_input","_uploader","canRetry","errorElement","show","hide","debounce_delay","getConfig","AUTOSAVE_DEBOUNCE_DELAY","AUTOSAVE_TIMEOUT_DELAY","AUTOSAVE_CONDITIONAL_SPINNER_DEBOUNCE_DELAY","AutosaveController","_abortController","_latestPromise","_needsRetry","_pendingPromiseCount","_spinnerTimeoutId","isButtonElement","inputTargetSelector","matchInputElement","validate","champWrapperElement","champElement","spinner","__privateWrapper","status_visible_duration","AUTOSAVE_STATUS_VISIBLE_DURATION","_AutosaveStatusController","autosave","removeClass","addClass","hasClass","AutosaveStatusController","AutosaveSubmitController","_isSaving","_shouldSubmit","_buttonText","disableWith","AUTOSUBMIT_DATE_DEBOUNCE_DELAY","AUTOSUBMIT_EVENTS","_AutosubmitController","_dateTimeChangedInputs","isFormInputElement","noAutosubmit","eventTypes","eventType","submitter","AutosubmitController","_BatchOperationController","deleteSelection","displayNotice","dossierIds","hidden_input_multiple_ids","field_refuse","field_without_continuation","emptyCheckboxes","buttons","checked","available","operation","isInputForOperation","switchButton","dropdown","BatchOperationController","flag","checkbox_all","dynamic_number","SUCCESS_MESSAGE_TIMEOUT","_ClipboardController","_timer","ClipboardController","_ClosingNotificationController","brouillonToggleElement","emailContentBrouillonElement","enCoursToggleElement","ClosingNotificationController","_ClosingReasonController","closingReasonSelect","field","ClosingReasonController","DATE_PLACEHOLDER_REGEXP","DATE_EXAMPLE_REGEXP","PARTS","DateInputHintController","text","placeholder","example","locale","part","_typeof","obj","requiredArgs","required","isDate","toDate","argument","argStr","isValid","dirtyDate","date","toInteger","dirtyNumber","number","addMilliseconds","dirtyAmount","amount","subMilliseconds","MILLISECONDS_IN_DAY","getUTCDayOfYear","startOfYearTimestamp","difference","startOfUTCISOWeek","weekStartsOn","day","diff","getUTCISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","defaultOptions","getDefaultOptions","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","addLeadingZeros","targetLength","sign","output","formatters","signedYear","month","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","dayPeriodEnum","localize","era","lightFormatters","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","quarter","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","_localize","originalDate","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","offset","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","formatLong","timeLongFormatter","dateTimeLongFormatter","matchResult","datePattern","timePattern","dateTimeFormat","longFormatters","getTimezoneOffsetInMilliseconds","utcDate","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","format","formatDistanceLocale","formatDistance","count","tokenValue","buildFormatLongFn","width","dateFormats","timeFormats","dateTimeFormats","formatRelativeLocale","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","valuesArray","defaultWidth","_defaultWidth","_width","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","rem100","buildMatchFn","string","matchPattern","matchedString","parsePatterns","findIndex","findKey","predicate","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_ref5","_ref6","_ref7","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","formatterOptions","substring","firstCharacter","longFormatter","cleanEscapedString","formatter","matched","DatetimeController","_isSupported","isDateTimeSupported","_DSFRHeaderController","DSFRHeaderController","_EmailInputController","email","address","data","EmailInputController","_EnableSubmitIfCheckedController","EnableSubmitIfCheckedController","_ExpandController","toggleExpandIcon","ExpandController","_FileInputResetController","files","deleteLabel","deleteButton","listItem","dataTransfer","FileInputResetController","onVisibleEnableInputs","onHiddenDisableInputs","_ForTiersController","isEmailSelected","radio","ForTiersController","FormatController","replaceValue","formattedNumber","lastDotIndex","lastCommaIndex","delta","dir","_GeoAreaController","GeoAreaController","HeaderSectionController","className","_InvalidIneligibiliteRulesController","InvalidIneligibiliteRulesController","_MapInfoController","MapInfoController","_MenuButtonController","menuItem","focusMenuItem","currentMenuItem","menuItems","stopPropagation","MenuButtonController","NumberInputController","isInputElement","_NumeroDnController","info","NumeroDnController","_PersistedFormController","PersistedFormController","_ScrollToController","top","ScrollToController","rect","_SelectChampPositionTemplateController","selectElement","focusedSelect","focusedSelectStableId","fragment","changedSelectTarget","select","SelectChampPositionTemplateController","StickyTopController","header","config","mutationsList","headerHeight","_SupportController","inputRadio","labelSelector","label","contentSelector","SupportController","_TextareaController","lines","TextareaController","DOCUMENT_FRAGMENT_NODE","morphAttrs","fromNode","toNode","toNodeAttrs","attr","attrName","attrNamespaceURI","attrValue","fromValue","fromNodeAttrs","range","NS_XHTML","doc","HAS_TEMPLATE_SUPPORT","HAS_RANGE_SUPPORT","createFragmentFromTemplate","createFragmentFromRange","createFragmentFromWrap","toElement","compareNodeNames","fromEl","toEl","fromNodeName","toNodeName","fromCodeStart","toCodeStart","createElementNS","namespaceURI","moveChildren","curChild","nextChild","syncBooleanAttrProp","specialElHandlers","parentNode","parentName","newValue","firstChild","selectedIndex","optgroup","nodeName","ELEMENT_NODE","DOCUMENT_FRAGMENT_NODE$1","TEXT_NODE","COMMENT_NODE","noop","defaultGetNodeKey","morphdomFactory","toNodeHtml","getNodeKey","onBeforeNodeAdded","onNodeAdded","onBeforeElUpdated","onElUpdated","onBeforeNodeDiscarded","onNodeDiscarded","onBeforeElChildrenUpdated","skipFromChildren","addChild","parent","child","childrenOnly","fromNodesLookup","keyedRemovalList","addKeyedRemoval","walkDiscardedChildNodes","skipKeyedNodes","removeNode","indexTree","handleNodeAdded","el","nextSibling","unmatchedFromEl","morphEl","cleanupFromEl","curFromNodeChild","curFromNodeKey","fromNextSibling","toElKey","beforeUpdateResult","morphChildren","skipFrom","curToNodeChild","curToNodeKey","toNextSibling","matchingFromEl","outer","curFromNodeType","isCompatible","onBeforeNodeAddedResult","specialElHandler","morphedNode","morphedNodeType","toNodeType","len","elToRemove","morphdom","D","de","le","E","T","he","fe","ue","be","J","te","L","ae","F","pe","ie","ge","ve","Ae","ye","p","A","w","Ie","_e","Ce","Ne","Le","se","re","Me","ne","ce","me","we","Oe","xe","ee","ze","Se","Q","Te","Ee","Fe","qe","Pe","__vitePreload","_TurboController","_submitting","_actions","_root","createRoot","loader","plugin","createReactPlugin","Actions","streamElement","parseTurboStream","currentElement","newElement","TurboSession","TurboController","componentsRegistry","components","moduleName","exportName","path","componentClassName","_TurboInputController","TurboInputController","DEFAULT_POLL_INTERVAL","DEFAULT_MAX_CHECKS","_TurboPollController","pollers","TurboPollController","_TypeDeChampEditorController","_dirtyForms","_inFlightForms","direction","createForm","createHiddenInput","forms","TypeDeChampEditorController","_VisaController","visa","champ","visibility","VisaController","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","__vite_glob_0_16","__vite_glob_0_17","__vite_glob_0_18","__vite_glob_0_19","__vite_glob_0_20","__vite_glob_0_21","__vite_glob_0_22","__vite_glob_0_23","__vite_glob_0_24","__vite_glob_0_25","__vite_glob_0_26","__vite_glob_0_27","__vite_glob_0_28","__vite_glob_0_29","__vite_glob_0_30","__vite_glob_0_31","__vite_glob_0_32","__vite_glob_0_33","__vite_glob_0_34","__vite_glob_0_35","__vite_glob_0_36","__vite_glob_0_37","__vite_glob_0_38","__vite_glob_0_39","__vite_glob_0_40","lazyControllers","controllerLoaders","registerControllers","registerController","controllerName","registerControllerLoader","lazyLoadExistingControllers","lazyLoadNewControllers","queryControllerNamesWithin","loadController","extractControllerNamesFrom","exportModule"],"ignoreList":[0,1,2,5,11,12,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,81,82,83,84],"sources":["../../../node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js","../../../node_modules/@hotwired/stimulus/dist/stimulus.js","../../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../../app/javascript/shared/activestorage/progress-bar.ts","../../../app/javascript/shared/activestorage/file-upload-error.ts","../../../node_modules/debounce/index.js","../../../app/javascript/controllers/application_controller.ts","../../../app/javascript/controllers/api_token_autorisation_controller.ts","../../../app/javascript/controllers/api_token_securite_controller.ts","../../../app/javascript/controllers/attestation_controller.ts","../../../app/javascript/controllers/autofocus_controller.ts","../../../node_modules/@frsource/autoresize-textarea/dist/index.modern.mjs","../../../node_modules/@coldwired/utils/dist/index.es.js","../../../app/javascript/controllers/autoresize_controller.ts","../../../app/javascript/shared/activestorage/uploader.ts","../../../app/javascript/shared/activestorage/auto-upload.ts","../../../app/javascript/controllers/autosave_controller.ts","../../../app/javascript/controllers/autosave_status_controller.ts","../../../app/javascript/controllers/autosave_submit_controller.ts","../../../app/javascript/controllers/autosubmit_controller.ts","../../../app/javascript/controllers/batch_operation_controller.ts","../../../app/javascript/controllers/clipboard_controller.ts","../../../app/javascript/controllers/closing_notification_controller.ts","../../../app/javascript/controllers/closing_reason_controller.ts","../../../app/javascript/controllers/date_input_hint_controller.ts","../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../../../node_modules/date-fns/esm/isDate/index.js","../../../node_modules/date-fns/esm/toDate/index.js","../../../node_modules/date-fns/esm/isValid/index.js","../../../node_modules/date-fns/esm/_lib/toInteger/index.js","../../../node_modules/date-fns/esm/addMilliseconds/index.js","../../../node_modules/date-fns/esm/subMilliseconds/index.js","../../../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../../../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../../../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../../../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../../../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../../../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../../../node_modules/date-fns/esm/_lib/format/formatters/index.js","../../../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../../../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../../../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../../../node_modules/date-fns/esm/locale/en-US/index.js","../../../node_modules/date-fns/esm/format/index.js","../../../app/javascript/controllers/datetime_controller.ts","../../../app/javascript/controllers/dsfr_header_controller.ts","../../../app/javascript/controllers/email_input_controller.ts","../../../app/javascript/controllers/enable_submit_if_checked_controller.tsx","../../../app/javascript/controllers/expand_controller.ts","../../../app/javascript/controllers/file_input_reset_controller.ts","../../../app/javascript/controllers/for_tiers_controller.ts","../../../app/javascript/controllers/format_controller.ts","../../../app/javascript/controllers/geo_area_controller.tsx","../../../app/javascript/controllers/header_section_controller.ts","../../../app/javascript/controllers/ineligibilite_rules_match_controller.ts","../../../app/javascript/controllers/map_info_controller.ts","../../../app/javascript/controllers/menu_button_controller.ts","../../../app/javascript/controllers/number_input_controller.ts","../../../app/javascript/controllers/numero_dn_controller.ts","../../../app/javascript/controllers/persisted_form_controller.ts","../../../app/javascript/controllers/scroll_to_controller.ts","../../../app/javascript/controllers/select_champ_position_template_controller.ts","../../../app/javascript/controllers/sticky_top_controller.ts","../../../app/javascript/controllers/support_controller.ts","../../../app/javascript/controllers/textarea_controller.ts","../../../node_modules/morphdom/dist/morphdom-esm.js","../../../node_modules/@coldwired/actions/dist/index.es.js","../../../node_modules/@coldwired/turbo-stream/dist/index.es.js","../../../node_modules/@coldwired/react/dist/index-a62Z3vzd.js","../../../app/javascript/controllers/turbo_controller.ts","../../../app/javascript/controllers/turbo_input_controller.tsx","../../../app/javascript/controllers/turbo_poll_controller.ts","../../../app/javascript/controllers/type_de_champ_editor_controller.ts","../../../app/javascript/controllers/visa_controller.ts","../../../app/javascript/shared/stimulus-loader.ts"],"sourcesContent":["var sparkMd5 = {\n exports: {}\n};\n\n(function(module, exports) {\n (function(factory) {\n {\n module.exports = factory();\n }\n })((function(undefined$1) {\n var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n function md5cycle(x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\", j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function() {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function(from, to) {\n var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n if (to !== undefined$1) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [], length = hex.length, x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function(str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function(contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length, i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function() {\n this._buff = \"\";\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.prototype.getState = function() {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n SparkMD5.prototype.setState = function(state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function() {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function(tail, length) {\n var i = length, tmp, lo, hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function(str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function(content, raw) {\n var hash = md51(content), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function() {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function() {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function() {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n }));\n})(sparkMd5);\n\nvar SparkMD5 = sparkMd5.exports;\n\nconst fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\nclass FileChecksum {\n static create(file, callback) {\n const instance = new FileChecksum(file);\n instance.create(callback);\n }\n constructor(file) {\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n create(callback) {\n this.callback = callback;\n this.md5Buffer = new SparkMD5.ArrayBuffer;\n this.fileReader = new FileReader;\n this.fileReader.addEventListener(\"load\", (event => this.fileReaderDidLoad(event)));\n this.fileReader.addEventListener(\"error\", (event => this.fileReaderDidError(event)));\n this.readNextChunk();\n }\n fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n const binaryDigest = this.md5Buffer.end(true);\n const base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n fileReaderDidError(event) {\n this.callback(`Error reading ${this.file.name}`);\n }\n readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n const start = this.chunkIndex * this.chunkSize;\n const end = Math.min(start + this.chunkSize, this.file.size);\n const bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n}\n\nfunction getMetaValue(name) {\n const element = findElement(document.head, `meta[name=\"${name}\"]`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nfunction findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n const elements = root.querySelectorAll(selector);\n return toArray(elements);\n}\n\nfunction findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n}\n\nfunction dispatchEvent(element, type, eventInit = {}) {\n const {disabled: disabled} = element;\n const {bubbles: bubbles, cancelable: cancelable, detail: detail} = eventInit;\n const event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n}\n\nfunction toArray(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n}\n\nclass BlobRecord {\n constructor(file, checksum, url, customHeaders = {}) {\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest;\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n Object.keys(customHeaders).forEach((headerKey => {\n this.xhr.setRequestHeader(headerKey, customHeaders[headerKey]);\n }));\n const csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n }\n get status() {\n return this.xhr.status;\n }\n get response() {\n const {responseType: responseType, response: response} = this.xhr;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n const {response: response} = this;\n const {direct_upload: direct_upload} = response;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n }\n toJSON() {\n const result = {};\n for (const key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n}\n\nclass BlobUpload {\n constructor(blob) {\n this.blob = blob;\n this.file = blob.file;\n const {url: url, headers: headers} = blob.directUploadData;\n this.xhr = new XMLHttpRequest;\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (const key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n requestDidLoad(event) {\n const {status: status, response: response} = this.xhr;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n }\n}\n\nlet id = 0;\n\nclass DirectUpload {\n constructor(file, url, delegate, customHeaders = {}) {\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n this.customHeaders = customHeaders;\n }\n create(callback) {\n FileChecksum.create(this.file, ((error, checksum) => {\n if (error) {\n callback(error);\n return;\n }\n const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders);\n notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create((error => {\n if (error) {\n callback(error);\n } else {\n const upload = new BlobUpload(blob);\n notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create((error => {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n }));\n }\n }));\n }));\n }\n}\n\nfunction notify(object, methodName, ...messages) {\n if (object && typeof object[methodName] == \"function\") {\n return object[methodName](...messages);\n }\n}\n\nclass DirectUploadController {\n constructor(input, file) {\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n start(callback) {\n const hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(((error, attributes) => {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n this.dispatch(\"end\");\n callback(error);\n }));\n }\n uploadRequestDidProgress(event) {\n const progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n get url() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n dispatch(name, detail = {}) {\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, `direct-upload:${name}`, {\n detail: detail\n });\n }\n dispatchError(error) {\n const event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n directUploadWillStoreFileWithXHR(xhr) {\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", (event => this.uploadRequestDidProgress(event)));\n }\n}\n\nconst inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\nclass DirectUploadsController {\n constructor(form) {\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter((input => input.files.length));\n }\n start(callback) {\n const controllers = this.createDirectUploadControllers();\n const startNextController = () => {\n const controller = controllers.shift();\n if (controller) {\n controller.start((error => {\n if (error) {\n callback(error);\n this.dispatch(\"end\");\n } else {\n startNextController();\n }\n }));\n } else {\n callback();\n this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n createDirectUploadControllers() {\n const controllers = [];\n this.inputs.forEach((input => {\n toArray(input.files).forEach((file => {\n const controller = new DirectUploadController(input, file);\n controllers.push(controller);\n }));\n }));\n return controllers;\n }\n dispatch(name, detail = {}) {\n return dispatchEvent(this.form, `direct-uploads:${name}`, {\n detail: detail\n });\n }\n}\n\nconst processingAttribute = \"data-direct-uploads-processing\";\n\nconst submitButtonsByForm = new WeakMap;\n\nlet started = false;\n\nfunction start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm, true);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n}\n\nfunction didClick(event) {\n const button = event.target.closest(\"button, input\");\n if (button && button.type === \"submit\" && button.form) {\n submitButtonsByForm.set(button.form, button);\n }\n}\n\nfunction didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n}\n\nfunction didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n}\n\nfunction handleFormSubmissionEvent(event) {\n const form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n const controller = new DirectUploadsController(form);\n const {inputs: inputs} = controller;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start((error => {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n }));\n }\n}\n\nfunction submitForm(form) {\n let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n const {disabled: disabled} = button;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n}\n\nfunction disable(input) {\n input.disabled = true;\n}\n\nfunction enable(input) {\n input.disabled = false;\n}\n\nfunction autostart() {\n if (window.ActiveStorage) {\n start();\n }\n}\n\nsetTimeout(autostart, 1);\n\nexport { DirectUpload, DirectUploadController, DirectUploadsController, start };\n","/*\nStimulus 3.2.1\nCopyright © 2023 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n hasBindings() {\n return this.unorderedBindings.size > 0;\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n const { stopImmediatePropagation } = event;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n },\n });\n }\n}\n\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach((eventListener) => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding, clearEventListeners = false) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n if (clearEventListeners)\n this.clearEventListenersForBinding(binding);\n }\n handleError(error, message, detail = {}) {\n this.application.handleError(error, `Error ${message}`, detail);\n }\n clearEventListenersForBinding(binding) {\n const eventListener = this.fetchEventListenerForBinding(binding);\n if (!eventListener.hasBindings()) {\n eventListener.disconnect();\n this.removeMappedEventListenerFor(binding);\n }\n }\n removeMappedEventListenerFor(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n eventListenerMap.delete(cacheKey);\n if (eventListenerMap.size == 0)\n this.eventListenerMaps.delete(eventTarget);\n }\n fetchEventListenerForBinding(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions)\n .sort()\n .forEach((key) => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\n\nconst defaultActionDescriptorFilters = {\n stop({ event, value }) {\n if (value)\n event.stopPropagation();\n return true;\n },\n prevent({ event, value }) {\n if (value)\n event.preventDefault();\n return true;\n },\n self({ event, value, element }) {\n if (value) {\n return element === event.target;\n }\n else {\n return true;\n }\n },\n};\nconst descriptorPattern = /^(?:(?:([^.]+?)\\+)?(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n let eventName = matches[2];\n let keyFilter = matches[3];\n if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n eventName += `.${keyFilter}`;\n keyFilter = \"\";\n }\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName,\n eventOptions: matches[7] ? parseEventOptions(matches[7]) : {},\n identifier: matches[5],\n methodName: matches[6],\n keyFilter: matches[1] || keyFilter,\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n }\n else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions\n .split(\":\")\n .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nfunction isSomething(object) {\n return object !== null && object !== undefined;\n}\nfunction hasProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nconst allModifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\nclass Action {\n constructor(element, index, descriptor, schema) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n this.keyFilter = descriptor.keyFilter || \"\";\n this.schema = schema;\n }\n static forToken(token, schema) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n }\n toString() {\n const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n }\n shouldIgnoreKeyboardEvent(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filters = this.keyFilter.split(\"+\");\n if (this.keyFilterDissatisfied(event, filters)) {\n return true;\n }\n const standardFilter = filters.filter((key) => !allModifiers.includes(key))[0];\n if (!standardFilter) {\n return false;\n }\n if (!hasProperty(this.keyMappings, standardFilter)) {\n error(`contains unknown key filter: ${this.keyFilter}`);\n }\n return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n }\n shouldIgnoreMouseEvent(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filters = [this.keyFilter];\n if (this.keyFilterDissatisfied(event, filters)) {\n return true;\n }\n return false;\n }\n get params() {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n for (const { name, value } of Array.from(this.element.attributes)) {\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n params[camelize(key)] = typecast(value);\n }\n }\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n get keyMappings() {\n return this.schema.keyMappings;\n }\n keyFilterDissatisfied(event, filters) {\n const [meta, ctrl, alt, shift] = allModifiers.map((modifier) => filters.includes(modifier));\n return event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift;\n }\n}\nconst defaultEventNames = {\n a: () => \"click\",\n button: () => \"click\",\n form: () => \"submit\",\n details: () => \"toggle\",\n input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n select: () => \"change\",\n textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n }\n catch (o_O) {\n return value;\n }\n}\n\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n const actionEvent = this.prepareActionEvent(event);\n if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(actionEvent)) {\n this.invokeWithEvent(actionEvent);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n }\n applyEventModifiers(event) {\n const { element } = this.action;\n const { actionDescriptorFilters } = this.context.application;\n const { controller } = this.context;\n let passes = true;\n for (const [name, value] of Object.entries(this.eventOptions)) {\n if (name in actionDescriptorFilters) {\n const filter = actionDescriptorFilters[name];\n passes = passes && filter({ name, value, event, element, controller });\n }\n else {\n continue;\n }\n }\n return passes;\n }\n prepareActionEvent(event) {\n return Object.assign(event, { params: this.action.params });\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n this.method.call(this.controller, event);\n this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n }\n catch (error) {\n const { identifier, controller, element, index } = this;\n const detail = { identifier, controller, element, index, event };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (event instanceof KeyboardEvent && this.action.shouldIgnoreKeyboardEvent(event)) {\n return false;\n }\n if (event instanceof MouseEvent && this.action.shouldIgnoreMouseEvent(event)) {\n return false;\n }\n if (this.element === eventTarget) {\n return true;\n }\n else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n }\n else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(element, attributeName) {\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree(tree = this.element) {\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n }\n addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n}\n\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\n\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some((set) => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey)\n .filter(([_key, values]) => values.has(value))\n .map(([key, _values]) => key);\n }\n}\n\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map();\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\n\nclass SelectorObserver {\n constructor(element, selector, delegate, details) {\n this._selector = selector;\n this.details = details;\n this.elementObserver = new ElementObserver(element, this);\n this.delegate = delegate;\n this.matchesByElement = new Multimap();\n }\n get started() {\n return this.elementObserver.started;\n }\n get selector() {\n return this._selector;\n }\n set selector(selector) {\n this._selector = selector;\n this.refresh();\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get element() {\n return this.elementObserver.element;\n }\n matchElement(element) {\n const { selector } = this;\n if (selector) {\n const matches = element.matches(selector);\n if (this.delegate.selectorMatchElement) {\n return matches && this.delegate.selectorMatchElement(element, this.details);\n }\n return matches;\n }\n else {\n return false;\n }\n }\n matchElementsInTree(tree) {\n const { selector } = this;\n if (selector) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(selector)).filter((match) => this.matchElement(match));\n return match.concat(matches);\n }\n else {\n return [];\n }\n }\n elementMatched(element) {\n const { selector } = this;\n if (selector) {\n this.selectorMatched(element, selector);\n }\n }\n elementUnmatched(element) {\n const selectors = this.matchesByElement.getKeysForValue(element);\n for (const selector of selectors) {\n this.selectorUnmatched(element, selector);\n }\n }\n elementAttributeChanged(element, _attributeName) {\n const { selector } = this;\n if (selector) {\n const matches = this.matchElement(element);\n const matchedBefore = this.matchesByElement.has(selector, element);\n if (matches && !matchedBefore) {\n this.selectorMatched(element, selector);\n }\n else if (!matches && matchedBefore) {\n this.selectorUnmatched(element, selector);\n }\n }\n }\n selectorMatched(element, selector) {\n this.delegate.selectorMatched(element, selector, this.details);\n this.matchesByElement.add(selector, element);\n }\n selectorUnmatched(element, selector) {\n this.delegate.selectorUnmatched(element, selector, this.details);\n this.matchesByElement.delete(selector, element);\n }\n}\n\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue)\n this.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map((attribute) => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\n\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach((token) => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach((token) => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString\n .trim()\n .split(/\\s+/)\n .filter((content) => content.length)\n .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n constructor(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return { value };\n }\n catch (error) {\n return { error };\n }\n }\n}\n\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token, this.schema);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\n\nclass ValueObserver {\n constructor(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n }\n start() {\n this.stringMapObserver.start();\n this.invokeChangedCallbacksForDefaultValues();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null)\n return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n }\n else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n try {\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n catch (error) {\n if (error instanceof TypeError) {\n error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n }\n throw error;\n }\n }\n }\n get valueDescriptors() {\n const { valueDescriptorMap } = this;\n return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach((key) => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\n\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched({ element, content: name }) {\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched({ element, content: name }) {\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n constructor(context, delegate) {\n this.started = false;\n this.context = context;\n this.delegate = delegate;\n this.outletsByName = new Multimap();\n this.outletElementsByName = new Multimap();\n this.selectorObserverMap = new Map();\n this.attributeObserverMap = new Map();\n }\n start() {\n if (!this.started) {\n this.outletDefinitions.forEach((outletName) => {\n this.setupSelectorObserverForOutlet(outletName);\n this.setupAttributeObserverForOutlet(outletName);\n });\n this.started = true;\n this.dependentContexts.forEach((context) => context.refresh());\n }\n }\n refresh() {\n this.selectorObserverMap.forEach((observer) => observer.refresh());\n this.attributeObserverMap.forEach((observer) => observer.refresh());\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.disconnectAllOutlets();\n this.stopSelectorObservers();\n this.stopAttributeObservers();\n }\n }\n stopSelectorObservers() {\n if (this.selectorObserverMap.size > 0) {\n this.selectorObserverMap.forEach((observer) => observer.stop());\n this.selectorObserverMap.clear();\n }\n }\n stopAttributeObservers() {\n if (this.attributeObserverMap.size > 0) {\n this.attributeObserverMap.forEach((observer) => observer.stop());\n this.attributeObserverMap.clear();\n }\n }\n selectorMatched(element, _selector, { outletName }) {\n const outlet = this.getOutlet(element, outletName);\n if (outlet) {\n this.connectOutlet(outlet, element, outletName);\n }\n }\n selectorUnmatched(element, _selector, { outletName }) {\n const outlet = this.getOutletFromMap(element, outletName);\n if (outlet) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n selectorMatchElement(element, { outletName }) {\n const selector = this.selector(outletName);\n const hasOutlet = this.hasOutlet(element, outletName);\n const hasOutletController = element.matches(`[${this.schema.controllerAttribute}~=${outletName}]`);\n if (selector) {\n return hasOutlet && hasOutletController && element.matches(selector);\n }\n else {\n return false;\n }\n }\n elementMatchedAttribute(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n elementAttributeValueChanged(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n elementUnmatchedAttribute(_element, attributeName) {\n const outletName = this.getOutletNameFromOutletAttributeName(attributeName);\n if (outletName) {\n this.updateSelectorObserverForOutlet(outletName);\n }\n }\n connectOutlet(outlet, element, outletName) {\n var _a;\n if (!this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.add(outletName, outlet);\n this.outletElementsByName.add(outletName, element);\n (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n }\n }\n disconnectOutlet(outlet, element, outletName) {\n var _a;\n if (this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.delete(outletName, outlet);\n this.outletElementsByName.delete(outletName, element);\n (_a = this.selectorObserverMap\n .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n }\n }\n disconnectAllOutlets() {\n for (const outletName of this.outletElementsByName.keys) {\n for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n }\n }\n updateSelectorObserverForOutlet(outletName) {\n const observer = this.selectorObserverMap.get(outletName);\n if (observer) {\n observer.selector = this.selector(outletName);\n }\n }\n setupSelectorObserverForOutlet(outletName) {\n const selector = this.selector(outletName);\n const selectorObserver = new SelectorObserver(document.body, selector, this, { outletName });\n this.selectorObserverMap.set(outletName, selectorObserver);\n selectorObserver.start();\n }\n setupAttributeObserverForOutlet(outletName) {\n const attributeName = this.attributeNameForOutletName(outletName);\n const attributeObserver = new AttributeObserver(this.scope.element, attributeName, this);\n this.attributeObserverMap.set(outletName, attributeObserver);\n attributeObserver.start();\n }\n selector(outletName) {\n return this.scope.outlets.getSelectorForOutletName(outletName);\n }\n attributeNameForOutletName(outletName) {\n return this.scope.schema.outletAttributeForScope(this.identifier, outletName);\n }\n getOutletNameFromOutletAttributeName(attributeName) {\n return this.outletDefinitions.find((outletName) => this.attributeNameForOutletName(outletName) === attributeName);\n }\n get outletDependencies() {\n const dependencies = new Multimap();\n this.router.modules.forEach((module) => {\n const constructor = module.definition.controllerConstructor;\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n });\n return dependencies;\n }\n get outletDefinitions() {\n return this.outletDependencies.getKeysForValue(this.identifier);\n }\n get dependentControllerIdentifiers() {\n return this.outletDependencies.getValuesForKey(this.identifier);\n }\n get dependentContexts() {\n const identifiers = this.dependentControllerIdentifiers;\n return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n }\n hasOutlet(element, outletName) {\n return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n }\n getOutlet(element, outletName) {\n return this.application.getControllerForElementAndIdentifier(element, outletName);\n }\n getOutletFromMap(element, outletName) {\n return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n }\n get scope() {\n return this.context.scope;\n }\n get schema() {\n return this.context.schema;\n }\n get identifier() {\n return this.context.identifier;\n }\n get application() {\n return this.context.application;\n }\n get router() {\n return this.application.router;\n }\n}\n\nclass Context {\n constructor(module, scope) {\n this.logDebugActivity = (functionName, detail = {}) => {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.logDebugActivity(this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n this.outletObserver = new OutletObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n this.outletObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n refresh() {\n this.outletObserver.refresh();\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.outletObserver.stop();\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message, detail = {}) {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n outletConnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n }\n outletDisconnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n }\n invokeControllerMethod(methodName, ...args) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n controller[methodName](...args);\n }\n }\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, { [key]: descriptor });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: { value: extended },\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n const a = function () {\n this.a.call(this);\n };\n const b = extendWithReflect(a);\n b.prototype.a = function () { };\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n }\n catch (error) {\n return (constructor) => class extended extends constructor {\n };\n }\n})();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor),\n };\n}\n\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n}\n\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\n\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n }\n else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\n\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n warn(object, key, message) {\n let warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find(...targetNames) {\n return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n }\n findAll(...targetNames) {\n return targetNames.reduce((targets, targetName) => [\n ...targets,\n ...this.findAllTargets(targetName),\n ...this.findAllLegacyTargets(targetName),\n ], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const { identifier } = this;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\n\nclass OutletSet {\n constructor(scope, controllerElement) {\n this.scope = scope;\n this.controllerElement = controllerElement;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(outletName) {\n return this.find(outletName) != null;\n }\n find(...outletNames) {\n return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n }\n findAll(...outletNames) {\n return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n }\n getSelectorForOutletName(outletName) {\n const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n return this.controllerElement.getAttribute(attributeName);\n }\n findOutlet(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n if (selector)\n return this.findElement(selector, outletName);\n }\n findAllOutlets(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n return selector ? this.findAllElements(selector, outletName) : [];\n }\n findElement(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n }\n findAllElements(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName));\n }\n matchesElement(element, selector, outletName) {\n const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n }\n}\n\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = (element) => {\n return element.closest(this.controllerSelector) === this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n this.outlets = new OutletSet(this.documentScope, element);\n }\n findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [\n ...(this.element.matches(selector) ? [this.element] : []),\n ...this.queryElements(selector).filter(this.containsElement),\n ];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n get isDocumentScope() {\n return this.element === document.documentElement;\n }\n get documentScope() {\n return this.isDocumentScope\n ? this\n : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n }\n}\n\nclass ScopeObserver {\n constructor(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const { element, content: identifier } = token;\n return this.parseValueForElementAndIdentifier(element, identifier);\n }\n parseValueForElementAndIdentifier(element, identifier) {\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n elementMatchedValue(element, value) {\n const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n elementUnmatchedValue(element, value) {\n const referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\n\nclass Router {\n constructor(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n const afterLoad = definition.controllerConstructor.afterLoad;\n if (afterLoad) {\n afterLoad.call(definition.controllerConstructor, definition.identifier, this.application);\n }\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find((context) => context.element == element);\n }\n }\n proposeToConnectScopeForElementAndIdentifier(element, identifier) {\n const scope = this.scopeObserver.parseValueForElementAndIdentifier(element, identifier);\n if (scope) {\n this.scopeObserver.elementMatchedValue(scope.element, scope);\n }\n else {\n console.error(`Couldn't find or create scope for identifier: \"${identifier}\" and element:`, element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.disconnectContextForScope(scope));\n }\n}\n\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\", page_up: \"PageUp\", page_down: \"PageDown\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n constructor(element = document.documentElement, schema = defaultSchema) {\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = (identifier, functionName, detail = {}) => {\n if (this.debug) {\n this.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n }\n static start(element, schema) {\n const application = new this(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n this.load({ identifier, controllerConstructor });\n }\n registerActionOption(name, filter) {\n this.actionDescriptorFilters[name] = filter;\n }\n load(head, ...rest) {\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach((definition) => {\n if (definition.controllerConstructor.shouldLoad) {\n this.router.loadDefinition(definition);\n }\n });\n }\n unload(head, ...rest) {\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map((context) => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName, detail = {}) {\n detail = Object.assign({ application: this }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise((resolve) => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n }\n else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const { classes } = this;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n },\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n },\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n },\n },\n };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n return outlets.reduce((properties, outletDefinition) => {\n return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n }, {});\n}\nfunction getOutletController(controller, element, identifier) {\n return controller.application.getControllerForElementAndIdentifier(element, identifier);\n}\nfunction getControllerAndEnsureConnectedScope(controller, element, outletName) {\n let outletController = getOutletController(controller, element, outletName);\n if (outletController)\n return outletController;\n controller.application.router.proposeToConnectScopeForElementAndIdentifier(element, outletName);\n outletController = getOutletController(controller, element, outletName);\n if (outletController)\n return outletController;\n}\nfunction propertiesForOutletDefinition(name) {\n const camelizedName = namespaceCamelize(name);\n return {\n [`${camelizedName}Outlet`]: {\n get() {\n const outletElement = this.outlets.find(name);\n const selector = this.outlets.getSelectorForOutletName(name);\n if (outletElement) {\n const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n if (outletController)\n return outletController;\n throw new Error(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`);\n }\n throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n },\n },\n [`${camelizedName}Outlets`]: {\n get() {\n const outlets = this.outlets.findAll(name);\n if (outlets.length > 0) {\n return outlets\n .map((outletElement) => {\n const outletController = getControllerAndEnsureConnectedScope(this, outletElement, name);\n if (outletController)\n return outletController;\n console.warn(`The provided outlet element is missing an outlet controller \"${name}\" instance for host controller \"${this.identifier}\"`, outletElement);\n })\n .filter((controller) => controller);\n }\n return [];\n },\n },\n [`${camelizedName}OutletElement`]: {\n get() {\n const outletElement = this.outlets.find(name);\n const selector = this.outlets.getSelectorForOutletName(name);\n if (outletElement) {\n return outletElement;\n }\n else {\n throw new Error(`Missing outlet element \"${name}\" for host controller \"${this.identifier}\". Stimulus couldn't find a matching outlet element using selector \"${selector}\".`);\n }\n },\n },\n [`${camelizedName}OutletElements`]: {\n get() {\n return this.outlets.findAll(name);\n },\n },\n [`has${capitalize(camelizedName)}Outlet`]: {\n get() {\n return this.outlets.has(name);\n },\n },\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n },\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n },\n },\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, { [attributeName]: valueDescriptor });\n }, {});\n },\n },\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n const { key, name, reader: read, writer: write } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n },\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n },\n },\n };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n return valueDescriptorForTokenAndTypeDefinition({\n controller,\n token,\n typeDefinition,\n });\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue))\n return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n const { controller, token, typeObject } = payload;\n const hasType = isSomething(typeObject.type);\n const hasDefault = isSomething(typeObject.default);\n const fullObject = hasType && hasDefault;\n const onlyType = hasType && !hasDefault;\n const onlyDefault = !hasType && hasDefault;\n const typeFromObject = parseValueTypeConstant(typeObject.type);\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeObject.default);\n if (onlyType)\n return typeFromObject;\n if (onlyDefault)\n return typeFromDefaultValue;\n if (typeFromObject !== typeFromDefaultValue) {\n const propertyPath = controller ? `${controller}.${token}` : token;\n throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${typeObject.default}\" is of type \"${typeFromDefaultValue}\".`);\n }\n if (fullObject)\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const { controller, token, typeDefinition } = payload;\n const typeObject = { controller, token, typeObject: typeDefinition };\n const typeFromObject = parseValueTypeObject(typeObject);\n const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n const typeFromConstant = parseValueTypeConstant(typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n const propertyPath = controller ? `${controller}.${typeDefinition}` : token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const hasDefault = hasProperty(typeDefinition, \"default\");\n const hasType = hasProperty(typeDefinition, \"type\");\n const typeObject = typeDefinition;\n if (hasDefault)\n return typeObject.default;\n if (hasType) {\n const { type } = typeObject;\n const constantFromType = parseValueTypeConstant(type);\n if (constantFromType)\n return defaultValuesByType[constantFromType];\n }\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const { token, typeDefinition } = payload;\n const key = `${dasherize(token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers.default,\n };\n}\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\",\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n },\n number(value) {\n return Number(value.replace(/_/g, \"\"));\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n }\n return object;\n },\n string(value) {\n return value;\n },\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON,\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n static afterLoad(_identifier, _application) {\n return;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get outlets() {\n return this.scope.outlets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {\n }\n connect() {\n }\n disconnect() {\n }\n dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true, } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, { detail, bubbles, cancelable });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [\n ClassPropertiesBlessing,\n TargetPropertiesBlessing,\n ValuePropertiesBlessing,\n OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import invariant from 'tiny-invariant';\n\nconst PENDING_CLASS = 'direct-upload--pending';\nconst ERROR_CLASS = 'direct-upload--error';\nconst COMPLETE_CLASS = 'direct-upload--complete';\n\n/**\n ProgressBar is and utility class responsible for\n rendering upload progress bar. It is used to handle\n direct-upload form ujs events but also in the\n Uploader delegate used with uploads on json api.\n\n As the associated DOM element may disappear for some\n reason (a dynamic React list, an element being removed\n and recreated again later, etc.), this class doesn't\n raise any error if the associated DOM element cannot\n be found.\n */\nexport default class ProgressBar {\n static init(input: HTMLInputElement, id: string, file: File) {\n clearErrors(input);\n const html = this.render(id, file.name);\n input.before(html);\n }\n\n static start(id: string) {\n const element = getDirectUploadElement(id);\n if (element) {\n element.classList.remove(PENDING_CLASS);\n element.focus();\n }\n }\n\n static progress(id: string, progress: number) {\n const element = getDirectUploadProgressElement(id);\n if (element) {\n element.style.width = `${progress}%`;\n element.setAttribute('aria-valuenow', `${progress}`);\n }\n }\n\n static error(id: string, error: string) {\n const element = getDirectUploadElement(id);\n if (element) {\n element.classList.add(ERROR_CLASS);\n element.setAttribute('title', error);\n }\n }\n\n static end(id: string) {\n const element = getDirectUploadElement(id);\n if (element) {\n element.classList.add(COMPLETE_CLASS);\n }\n }\n\n static render(id: string, filename: string) {\n const template = document.querySelector(\n '#progress-bar-template'\n );\n invariant(template, 'Missing progress-bar-template');\n const fragment = template.content.cloneNode(true) as DocumentFragment;\n const container = fragment.querySelector('.direct-upload');\n invariant(container, 'Missing .direct-upload element in template');\n const slot = container.querySelector(\n 'slot[name=\"filename\"]'\n );\n invariant(slot, 'Missing \"filename\" slot in template');\n\n container.id = `direct-upload-${id}`;\n container.dataset.directUploadId = id;\n container.classList.add(PENDING_CLASS);\n slot.replaceWith(document.createTextNode(filename));\n\n return container;\n }\n\n id: string;\n\n constructor(input: HTMLInputElement, id: string, file: File) {\n ProgressBar.init(input, id, file);\n this.id = id;\n }\n\n start() {\n ProgressBar.start(this.id);\n }\n\n progress(progress: number) {\n ProgressBar.progress(this.id, progress);\n }\n\n error(error: string) {\n ProgressBar.error(this.id, error);\n }\n\n end() {\n ProgressBar.end(this.id);\n }\n\n destroy() {\n const element = getDirectUploadElement(this.id);\n element?.remove();\n }\n}\n\nfunction clearErrors(input: HTMLInputElement) {\n const errorElements =\n input.parentElement?.querySelectorAll(`.${ERROR_CLASS}`) ?? [];\n for (const element of errorElements) {\n element.remove();\n }\n}\n\nfunction getDirectUploadElement(id: string) {\n return document.querySelector(`#direct-upload-${id}`);\n}\n\nfunction getDirectUploadProgressElement(id: string) {\n return document.querySelector(\n `#direct-upload-${id} .direct-upload__progress`\n );\n}\n","// Error while reading the file client-side\nexport const ERROR_CODE_READ = 'file-upload-read-error';\n// Error while creating the empty blob on the server\nexport const ERROR_CODE_CREATE = 'file-upload-create-error';\n// Error while uploading the blob content\nexport const ERROR_CODE_STORE = 'file-upload-store-error';\n// Error while attaching the blob to the record\nexport const ERROR_CODE_ATTACH = 'file-upload-attach-error';\n\n// Failure on the client side (syntax error, error reading file, etc.)\nexport const FAILURE_CLIENT = 'file-upload-failure-client';\n// Failure on the server side (typically non-200 response)\nexport const FAILURE_SERVER = 'file-upload-failure-server';\n// Failure during the transfert (request aborted, connection lost, etc)\nexport const FAILURE_CONNECTIVITY = 'file-upload-failure-connectivity';\n\n/**\n Represent an error during a file upload.\n */\nexport class FileUploadError extends Error {\n status?: number;\n code?: string;\n\n constructor(message: string, status: number | undefined, code?: string) {\n super(message);\n\n this.name = 'FileUploadError';\n this.status = status;\n this.code = code;\n\n // Prevent the constructor stacktrace from being included.\n // (it messes up with Sentry issues grouping)\n const hasCaptureStackTrace = 'captureStackTrace' in Error;\n if (!hasCaptureStackTrace) {\n this.stack = new Error().stack;\n }\n }\n\n /**\n Return the component responsible of the error (client, server or connectivity).\n See FAILURE_* constants for values.\n */\n get failureReason() {\n const isNetworkError = this.code && this.code != ERROR_CODE_READ;\n\n if (isNetworkError && this.status != 0) {\n return FAILURE_SERVER;\n } else if (isNetworkError && this.status == 0) {\n return FAILURE_CONNECTIVITY;\n } else {\n return FAILURE_CLIENT;\n }\n }\n}\n\n// Convert an error message returned by DirectUpload to a proper error object.\n//\n// This function has two goals:\n// 1. Remove the file name from the DirectUpload error message\n// (because the filename confuses Sentry error grouping)\n// 2. Create each kind of error on a different line\n// (so that Sentry knows they are different kind of errors, from\n// the line they were created.)\nexport function errorFromDirectUploadMessage(messageOrError: string | Error) {\n const message =\n typeof messageOrError == 'string' ? messageOrError : messageOrError.message;\n const matches = message.match(/ Status: ([0-9]{1,3})/);\n const status = matches ? parseInt(matches[1], 10) : undefined;\n\n // prettier-ignore\n if (message.includes('Error reading')) {\n return new FileUploadError('Error reading file.', status, ERROR_CODE_READ);\n } else if (message.includes('Error creating')) {\n return new FileUploadError('Error creating file.', status, ERROR_CODE_CREATE);\n } else if (message.includes('Error storing')) {\n return new FileUploadError('Error storing file.', status, ERROR_CODE_STORE);\n } else {\n return new FileUploadError(message, status, undefined);\n }\n}\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","import { Controller } from '@hotwired/stimulus';\nimport debounce from 'debounce';\nimport invariant from 'tiny-invariant';\n\nexport type Detail = Record;\n\n// see: https://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\nconst FOCUS_EVENTS = ['focus', 'blur'];\nconst ACTIVE_EVENTS = ['wheel'];\n\nexport class ApplicationController extends Controller {\n #debounced = new Map<() => void, ReturnType>();\n\n protected debounce(fn: () => void, interval: number): void {\n this.globalDispatch('debounced:added');\n\n let debounced = this.#debounced.get(fn);\n if (!debounced) {\n const wrapper = () => {\n fn.bind(this)();\n this.#debounced.delete(fn);\n if (this.#debounced.size == 0) {\n this.globalDispatch('debounced:empty');\n }\n };\n\n debounced = debounce(wrapper.bind(this), interval);\n\n this.#debounced.set(fn, debounced);\n }\n debounced();\n }\n\n protected cancelDebounce(fn: () => void) {\n this.#debounced.get(fn)?.clear();\n }\n\n protected globalDispatch(type: string, detail?: T): void {\n this.dispatch(type, {\n detail: detail as object,\n prefix: '',\n target: document.documentElement\n });\n }\n\n protected on(\n target: EventTarget,\n eventName: string,\n handler: (event: HandlerEvent) => void\n ): void;\n protected on(\n eventName: string,\n handler: (event: HandlerEvent) => void\n ): void;\n protected on(\n targetOrEventName: EventTarget | string,\n eventNameOrHandler: string | ((event: HandlerEvent) => void),\n handler?: (event: HandlerEvent) => void\n ): void {\n if (typeof targetOrEventName == 'string') {\n invariant(typeof eventNameOrHandler != 'string', 'handler is required');\n this.onTarget(this.element, targetOrEventName, eventNameOrHandler);\n } else {\n invariant(\n typeof eventNameOrHandler == 'string',\n 'event name is required'\n );\n invariant(handler, 'handler is required');\n this.onTarget(targetOrEventName, eventNameOrHandler, handler);\n }\n }\n\n protected onGlobal(\n eventName: string,\n handler: (event: HandlerEvent) => void\n ): void {\n this.onTarget(document.documentElement, eventName, handler);\n }\n\n protected onTarget(\n target: EventTarget,\n eventName: string,\n handler: (event: HandlerEvent) => void\n ): void {\n const disconnect = this.disconnect;\n const callback = (event: Event): void => {\n handler(event as HandlerEvent);\n };\n const options = {\n capture: FOCUS_EVENTS.includes(eventName),\n passive: ACTIVE_EVENTS.includes(eventName) ? false : undefined\n };\n target.addEventListener(eventName, callback, options);\n this.disconnect = () => {\n target.removeEventListener(eventName, callback, options);\n disconnect.call(this);\n };\n }\n}\n","import { ApplicationController } from './application_controller';\n\nexport class ApiTokenAutorisationController extends ApplicationController {\n static targets = [\n 'procedures',\n 'procedureSelect',\n 'procedureSelectGroup',\n 'continueButton'\n ];\n\n declare readonly continueButtonTarget: HTMLButtonElement;\n declare readonly procedureSelectTarget: HTMLSelectElement;\n declare readonly procedureSelectGroupTarget: HTMLElement;\n declare readonly proceduresTarget: HTMLElement;\n\n connect() {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const targetIds = urlSearchParams.getAll('targets[]');\n const customTargets = urlSearchParams.get('target') == 'custom';\n\n this.setupProceduresTarget(targetIds);\n\n if (customTargets && targetIds.length > 0) {\n this.showProcedureSelectGroup();\n }\n\n this.setContinueButtonState();\n }\n\n setupProceduresTarget(targetIds: string[]) {\n const options = Array.from(this.procedureSelectTarget.options);\n\n targetIds\n .map((id) => options.find((x) => x.value == id))\n .forEach((option) => option && this.addProcedureToSelect(option));\n }\n\n addProcedure(e: Event) {\n e.preventDefault();\n const selectedOption = this.procedureSelectTarget.selectedOptions[0];\n this.addProcedureToSelect(selectedOption);\n\n this.setContinueButtonState();\n }\n\n addProcedureToSelect(option: HTMLOptionElement) {\n const template = [\n `
  • `,\n option.text,\n \"\",\n ``,\n `
  • `\n ].join('');\n\n this.proceduresTarget.insertAdjacentHTML('beforeend', template);\n }\n\n deleteProcedure(e: Event) {\n e.preventDefault();\n const target = e.target as HTMLElement;\n target.closest('li')?.remove();\n this.setContinueButtonState();\n }\n\n showProcedureSelectGroup() {\n this.procedureSelectGroupTarget.classList.remove('hidden');\n this.setContinueButtonState();\n }\n\n hideProcedureSelectGroup() {\n this.procedureSelectGroupTarget.classList.add('hidden');\n this.setContinueButtonState();\n }\n\n setContinueButtonState() {\n if (this.targetDefined() && this.accessDefined()) {\n this.continueButtonTarget.disabled = false;\n } else {\n this.continueButtonTarget.disabled = true;\n }\n }\n\n targetDefined() {\n if (this.element.querySelectorAll(\"[value='all']:checked\").length > 0) {\n return true;\n }\n\n if (\n this.element.querySelectorAll(\"[value='custom']:checked\").length > 0 &&\n this.proceduresTarget.children.length > 0\n ) {\n return true;\n }\n\n return false;\n }\n\n accessDefined() {\n return this.element.querySelectorAll(\"[name='access']:checked\").length == 1;\n }\n}\n","import { ApplicationController } from './application_controller';\n\nexport class ApiTokenSecuriteController extends ApplicationController {\n static targets = [\n 'continueButton',\n 'networkFiltering',\n 'infiniteLifetime',\n 'customLifetime',\n 'customLifetimeInput',\n 'networks'\n ];\n\n declare readonly continueButtonTarget: HTMLButtonElement;\n declare readonly networkFilteringTarget: HTMLElement;\n declare readonly infiniteLifetimeTarget: HTMLInputElement;\n declare readonly customLifetimeTarget: HTMLElement;\n declare readonly customLifetimeInputTarget: HTMLInputElement;\n declare readonly networksTarget: HTMLInputElement;\n\n connect() {\n this.setContinueButtonState();\n }\n\n showNetworkFiltering() {\n this.networkFilteringTarget.classList.remove('hidden');\n this.setContinueButtonState();\n this.infiniteLifetimeTarget.disabled = false;\n }\n\n hideNetworkFiltering() {\n this.networkFilteringTarget.classList.add('hidden');\n this.setContinueButtonState();\n this.infiniteLifetimeTarget.checked = false;\n this.infiniteLifetimeTarget.disabled = true;\n }\n\n showCustomLifetime() {\n this.customLifetimeTarget.classList.remove('hidden');\n this.setContinueButtonState();\n }\n\n hideCustomLifetime() {\n this.customLifetimeTarget.classList.add('hidden');\n this.setContinueButtonState();\n }\n\n setContinueButtonState() {\n if (this.networkDefined() && this.lifetimeDefined()) {\n this.continueButtonTarget.disabled = false;\n } else {\n this.continueButtonTarget.disabled = true;\n }\n }\n\n networkDefined() {\n if (\n this.element.querySelectorAll(\n \"[name='networkFiltering'][value='none']:checked\"\n ).length > 0\n ) {\n return true;\n }\n\n if (\n this.element.querySelectorAll(\n \"[name='networkFiltering'][value='customNetworks']:checked\"\n ).length > 0 &&\n this.networksTarget.value.trim() != ''\n ) {\n return true;\n }\n\n return false;\n }\n\n lifetimeDefined() {\n if (\n this.element.querySelectorAll(\n \"[name='lifetime'][value='oneWeek']:checked\"\n ).length > 0\n ) {\n return true;\n }\n\n if (\n this.element.querySelectorAll(\n \"[name='lifetime'][value='infinite']:checked\"\n ).length > 0\n ) {\n return true;\n }\n\n if (\n this.element.querySelectorAll(\"[name='lifetime'][value='custom']:checked\")\n .length > 0 &&\n this.customLifetimeInputTarget.value.trim() != ''\n ) {\n return true;\n }\n\n return false;\n }\n}\n","import { toggle } from '@utils';\nimport { ApplicationController } from './application_controller';\n\nexport class AttestationController extends ApplicationController {\n static targets = [\n 'layoutToggle',\n 'logoMarianneLabelFieldset',\n 'logoAttachmentFieldset',\n 'preview'\n ];\n static values = {\n logoAttachmentOfficialLabel: String,\n logoAttachmentFreeLabel: String\n };\n\n declare readonly layoutToggleTarget: HTMLInputElement;\n declare readonly logoMarianneLabelFieldsetTarget: HTMLElement;\n declare readonly logoAttachmentFieldsetTarget: HTMLElement;\n declare readonly previewTarget: HTMLIFrameElement;\n\n declare readonly logoAttachmentOfficialLabelValue: string;\n declare readonly logoAttachmentFreeLabelValue: string;\n\n connect() {\n this.layoutToggleTarget.addEventListener('change', () => {\n this.update();\n });\n\n this.on('turbo:submit-end', () => {\n // eslint-disable-next-line no-self-assign\n this.previewTarget.src = this.previewTarget.src; // reload the iframe\n });\n }\n\n toggleMaybeNull(event: Event) {\n const checkbox = event.target as HTMLInputElement;\n const visible = checkbox.checked;\n\n // toggle hidden class on next label element\n checkbox.nextElementSibling\n ?.querySelector('.fr-hint-text')\n ?.classList?.toggle('hidden', !visible);\n\n document.querySelectorAll('li[data-maybe-null]').forEach((tag) => {\n tag.classList.toggle('hidden', !visible);\n });\n }\n\n private get isStateLayout() {\n return this.layoutToggleTarget.checked;\n }\n\n private update() {\n toggle(this.logoMarianneLabelFieldsetTarget, this.isStateLayout);\n\n const logoAttachmentLabel =\n this.logoAttachmentFieldsetTarget.querySelector('label');\n\n if (logoAttachmentLabel) {\n logoAttachmentLabel.innerText = this.isStateLayout\n ? this.logoAttachmentOfficialLabelValue\n : this.logoAttachmentFreeLabelValue;\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus';\n\nexport class AutofocusController extends Controller {\n connect() {\n const element = this.element as HTMLInputElement;\n element.focus();\n element.setSelectionRange(0, element.value.length);\n }\n}\n","function e(){return e=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(o.getAttribute(t))return;o.setAttribute(t,\"\");let r=\"\";const l=()=>{if(o.scrollHeight>o.clientHeight||r===o.style.height){const e=(e=>{const t=new Map;do{var o;t.set(e,e.scrollTop)}while((e=null==(o=e)?void 0:o.parentNode)instanceof Element);return()=>{for(const[e,o]of t)if(\"style\"in e){const t=e.style.scrollBehavior;e.style.scrollBehavior=\"auto\",e.scrollTop=o,e.style.scrollBehavior=t}else e.scrollTop=o}})(o);o.style.height=\"auto\";const t=o.style.overflow;o.style.overflow=\"hidden\",o.style.height=r=`${o.scrollHeight+(o.offsetHeight-o.clientHeight)}px`,o.style.overflow=t,e()}};o.style.boxSizing=\"border-box\",l(),o.addEventListener(\"input\",l);const s=Object.getPrototypeOf(o),n=Object.getOwnPropertyDescriptor(s,\"value\");return Object.defineProperty(o,\"value\",e({},n,{set(){var e;null==n||null==(e=n.set)||e.apply(this,arguments),l()}})),{detach(){o.removeAttribute(t),o.removeEventListener(\"input\",l)},update:l}};export{o as attach};\n//# sourceMappingURL=index.modern.mjs.map\n","var L = D;\nfunction D(t, e, u) {\n var n = null, r = null, i = function() {\n n && (clearTimeout(n), r = null, n = null);\n }, o = function() {\n var c = r;\n i(), c && c();\n }, s = function() {\n if (!e)\n return t.apply(this, arguments);\n var c = this, E = arguments, a = u && !n;\n if (i(), r = function() {\n t.apply(c, E);\n }, n = setTimeout(function() {\n if (n = null, !a) {\n var p = r;\n return r = null, p();\n }\n }, e), a)\n return r();\n };\n return s.cancel = i, s.flush = o, s;\n}\nvar F = w;\nfunction w(t, e, u) {\n var n = null, r = null, i = u && u.leading, o = u && u.trailing;\n i == null && (i = !0), o == null && (o = !i), i == !0 && (o = !1);\n var s = function() {\n n && (clearTimeout(n), n = null);\n }, c = function() {\n var a = r;\n s(), a && a();\n }, E = function() {\n var a = i && !n, p = this, A = arguments;\n if (r = function() {\n return t.apply(p, A);\n }, n || (n = setTimeout(function() {\n if (n = null, o)\n return r();\n }, e)), a)\n return a = !1, r();\n };\n return E.cancel = s, E.flush = c, E;\n}\nfunction J(t) {\n return new URL(t.toString(), document.baseURI);\n}\nfunction Q(t) {\n return `${t.pathname}${t.search}`;\n}\nfunction Z(t, { target: e, cancelable: u, detail: n } = {}) {\n const r = new CustomEvent(t, {\n cancelable: u,\n bubbles: !0,\n detail: n\n });\n return e && e.isConnected ? e.dispatchEvent(r) : document.documentElement.dispatchEvent(r), r;\n}\nconst d = 500;\nfunction tt(t, e, u) {\n let n = b.get(t);\n n || u != 0 && (n = L(e, u ?? d), b.set(t, n)), (n ?? e)();\n}\nconst b = /* @__PURE__ */ new WeakMap();\nfunction et(t) {\n var e;\n (e = b.get(t)) == null || e.cancel();\n}\nfunction nt(t, e, u) {\n let n = T.get(t);\n n || u != 0 && (n = F(e, u ?? d), T.set(t, n)), (n ?? e)();\n}\nconst T = /* @__PURE__ */ new WeakMap();\nfunction ut(t) {\n var e;\n (e = T.get(t)) == null || e.cancel();\n}\nfunction rt(t, e = 0) {\n return t ? parseInt(t) : e;\n}\nfunction f(t) {\n return N(t) && t.nodeType == Node.ELEMENT_NODE;\n}\nfunction it(t) {\n return f(t) && \"style\" in t;\n}\nfunction h(t) {\n return f(t) && t.tagName == \"BUTTON\";\n}\nfunction ct(t) {\n return f(t) && t.tagName == \"A\";\n}\nfunction lt(t) {\n return f(t) && t.tagName == \"LINK\";\n}\nfunction ot(t) {\n return f(t) && t.tagName == \"FORM\";\n}\nfunction st(t) {\n return h(t) || l(t);\n}\nfunction l(t) {\n return f(t) && t.tagName == \"INPUT\";\n}\nfunction S(t) {\n return f(t) && [\"INPUT\", \"TEXTAREA\", \"SELECT\"].includes(t.tagName);\n}\nfunction g(t) {\n return f(t) && t.tagName == \"TEXTAREA\";\n}\nfunction x(t) {\n return f(t) && t.tagName == \"SELECT\";\n}\nfunction ft(t) {\n return f(t) && t.tagName == \"OPTION\";\n}\nfunction M(t) {\n return l(t) && q(t.type);\n}\nfunction O(t) {\n return l(t) && t.type == \"number\";\n}\nfunction P(t) {\n return l(t) && t.type == \"checkbox\";\n}\nfunction R(t) {\n return l(t) && t.type == \"radio\";\n}\nfunction C(t) {\n return l(t) && t.type == \"range\";\n}\nfunction U(t) {\n return l(t) && t.type == \"color\";\n}\nfunction k(t) {\n return l(t) && t.type == \"file\";\n}\nfunction _(t) {\n return l(t) && t.type == \"hidden\";\n}\nfunction G(t) {\n return g(t) || l(t) && Y(t.type);\n}\nfunction v(t) {\n return g(t) || l(t) && z(t.type);\n}\nfunction H(t) {\n return x(t) || l(t) && j(t.type);\n}\nfunction at(t) {\n return N(t) && (t.nodeType == Node.TEXT_NODE || t.nodeType == Node.ELEMENT_NODE);\n}\nfunction N(t) {\n return !!t && \"nodeType\" in t;\n}\nfunction Et(t) {\n return t.ownerDocument.activeElement == t;\n}\nfunction $(t) {\n \"focus\" in t && typeof t.focus == \"function\" && (t.focus(), v(t) && t.setSelectionRange(t.value.length, t.value.length));\n}\nfunction pt(t, e) {\n const u = t.ownerDocument.activeElement;\n if (u && (t == u || t.contains(u))) {\n const n = W(t, u, e);\n n && $(n);\n }\n}\nfunction bt(t) {\n return new DOMParser().parseFromString(t, \"text/html\");\n}\nfunction Tt(t, e) {\n const u = e.createElement(\"template\");\n u.innerHTML = t;\n const n = u.content;\n return n.normalize(), n;\n}\nfunction mt() {\n return new Promise((t) => {\n document.readyState == \"loading\" ? document.addEventListener(\"DOMContentLoaded\", () => t(), { once: !0 }) : t();\n });\n}\nfunction dt() {\n return new Promise((t) => requestAnimationFrame(() => t()));\n}\nclass B extends Error {\n}\nfunction gt(t, e) {\n return new Promise((u, n) => {\n const r = setTimeout(u, t);\n e == null || e.addEventListener(\n \"abort\",\n () => {\n clearTimeout(r), n(new B(\"Aborted\"));\n },\n { once: !0 }\n );\n });\n}\nfunction xt(t, e) {\n return t.reduce((u, n) => {\n const r = e(n), i = u.get(r);\n return i ? i.push(n) : u.set(r, [n]), u;\n }, /* @__PURE__ */ new Map());\n}\nfunction vt(t, e) {\n return t.reduce(\n (u, n) => (e(n) ? u[0].push(n) : u[1].push(n), u),\n [[], []]\n );\n}\nfunction W(t, e, u) {\n var c;\n const n = u == null ? void 0 : u.focusDirectionAttribute, r = u == null ? void 0 : u.focusGroupAttribute, i = n ? (c = t.closest(`[${n}]`)) == null ? void 0 : c.getAttribute(n) : \"prev\", o = r ? t.closest(`[${r}]`) : null;\n return (o ? m(\n o,\n t,\n e,\n i == \"next\" ? \"next\" : \"prev\"\n ) : null) || m(\n t.ownerDocument.body,\n t,\n e,\n i == \"next\" ? \"next\" : \"prev\"\n );\n}\nfunction m(t, e, u, n = \"prev\") {\n const r = X(t, e, u), i = r.indexOf(u);\n if (r.length < 2)\n return null;\n const o = r.length - 1, s = i != 0 ? i - 1 : i + 1, c = i != o ? i + 1 : i - 1;\n return n == \"prev\" ? r.at(s) ?? r.at(c) ?? null : r.at(c) ?? r.at(s) ?? null;\n}\nfunction X(t, e, u) {\n return [\n ...t.querySelectorAll(\n 'a[href], button:not(:disabled), input:not(:disabled), textarea:not(:disabled), select:not(:disabled), details, [tabindex]:not([tabindex=\"-1\"])'\n )\n ].filter(\n (n) => n == u || !n.closest(\"[aria-hidden], [hidden]\") && !e.contains(n)\n );\n}\nconst I = [\"text\", \"search\", \"url\", \"tel\", \"password\", \"email\"];\nfunction Y(t) {\n return I.includes(t);\n}\nconst y = [\"date\", \"datetime-local\", \"month\", \"week\", \"time\"];\nfunction q(t) {\n return y.includes(t);\n}\nconst K = [...I, ...y, \"number\"];\nfunction z(t) {\n return K.includes(t);\n}\nconst V = [\"checkbox\", \"radio\", \"range\", \"file\", \"color\"];\nfunction j(t) {\n return V.includes(t);\n}\nfunction Nt(t, e, u) {\n var n, r, i;\n S(t) && !(u != null && u.disabled) && t.disabled || (v(t) ? e.text && G(t) ? e.text(t) : e.date && M(t) ? e.date(t) : e.number && O(t) ? e.number(t) : (n = e.inputable) == null || n.call(e, t) : H(t) ? e.select && x(t) ? e.select(t) : e.checkbox && P(t) ? e.checkbox(t) : e.radio && R(t) ? e.radio(t) : e.range && C(t) ? e.range(t) : e.file && k(t) ? e.file(t) : e.color && U(t) ? e.color(t) : (r = e.changeable) == null || r.call(e, t) : _(t) && ((i = e.hidden) == null || i.call(e, t)));\n}\nexport {\n B as AbortError,\n et as cancelDebounce,\n ut as cancelThrottle,\n tt as debounce,\n Z as dispatch,\n mt as domReady,\n J as expandURL,\n $ as focusElement,\n pt as focusNextElement,\n xt as groupBy,\n ct as isAnchorElement,\n h as isButtonElement,\n H as isChangeableElement,\n P as isCheckboxInputElement,\n U as isColorInputElement,\n M as isDateInputElement,\n f as isElement,\n at as isElementOrText,\n k as isFileInputElement,\n Et as isFocused,\n ot as isFormElement,\n S as isFormInputElement,\n ft as isFormOptionElement,\n it as isHTMLElement,\n _ as isHiddenInputElement,\n l as isInputElement,\n v as isInputableElement,\n lt as isLinkElement,\n O as isNumberInputElement,\n R as isRadioInputElement,\n C as isRangeInputElement,\n x as isSelectElement,\n st as isSubmitterElement,\n g as isTextAreaElement,\n G as isTextInputElement,\n Nt as matchInputElement,\n dt as nextAnimationFrame,\n bt as parseHTMLDocument,\n Tt as parseHTMLFragment,\n rt as parseIntWithDefault,\n vt as partition,\n Q as relativeURL,\n nt as throttle,\n gt as wait\n};\n","import { ApplicationController } from './application_controller';\nimport { attach } from '@frsource/autoresize-textarea';\nimport { isTextAreaElement } from '@coldwired/utils';\n\nexport class AutoresizeController extends ApplicationController {\n #detach?: () => void;\n connect(): void {\n if (isTextAreaElement(this.element)) {\n this.#detach = attach(this.element)?.detach;\n this.element.classList.add('resize-none');\n }\n }\n\n disconnect(): void {\n this.#detach?.();\n this.element.classList.remove('resize-none');\n }\n}\n","import { DirectUpload } from '@rails/activestorage';\nimport { httpRequest, ResponseError } from '@utils';\nimport ProgressBar from './progress-bar';\nimport {\n FileUploadError,\n errorFromDirectUploadMessage,\n ERROR_CODE_ATTACH\n} from './file-upload-error';\n\nconst BYTES_TO_MB_RATIO = 1_048_576;\n/**\n Uploader class is a delegate for DirectUpload instance\n used to track lifecycle and progress of an upload.\n */\nexport default class Uploader {\n directUpload: DirectUpload;\n progressBar: ProgressBar;\n autoAttachUrl?: string;\n maxFileSize: number;\n file: File;\n\n constructor(\n input: HTMLInputElement,\n file: File,\n directUploadUrl: string,\n autoAttachUrl?: string,\n maxFileSize?: string\n ) {\n this.file = file;\n this.directUpload = new DirectUpload(file, directUploadUrl, this);\n this.progressBar = new ProgressBar(input, this.directUpload.id + '', file);\n this.autoAttachUrl = autoAttachUrl;\n try {\n this.maxFileSize = parseInt(maxFileSize || '0', 10);\n } catch (e) {\n this.maxFileSize = 0;\n }\n }\n\n /**\n Upload (and optionally attach) the file.\n Returns the blob signed id on success.\n Throws a FileUploadError on failure.\n */\n async start() {\n this.progressBar.start();\n if (this.maxFileSize > 0 && this.file.size > this.maxFileSize) {\n throw `La taille du fichier ne peut dépasser\n ${this.maxFileSize / BYTES_TO_MB_RATIO} Mo\n (in english: File size can't be bigger than\n ${this.maxFileSize / BYTES_TO_MB_RATIO} Mo).`;\n }\n try {\n const blobSignedId = await this.upload();\n\n if (this.autoAttachUrl) {\n await this.attach(blobSignedId, this.autoAttachUrl);\n // On response, the attachment HTML fragment will replace the progress bar.\n } else {\n this.progressBar.end();\n this.progressBar.destroy();\n }\n\n return blobSignedId;\n } catch (error) {\n this.progressBar.error((error as Error).message);\n throw error;\n }\n }\n\n /**\n Upload the file using the DirectUpload instance, and return the blob signed_id.\n Throws a FileUploadError on failure.\n */\n private async upload(): Promise {\n return new Promise((resolve, reject) => {\n this.directUpload.create((errorMsg, attributes) => {\n if (errorMsg) {\n const error = errorFromDirectUploadMessage(errorMsg);\n reject(error);\n } else {\n resolve(attributes.signed_id);\n }\n });\n });\n }\n\n /**\n Attach the file by sending a POST request to the autoAttachUrl.\n Throws a FileUploadError on failure (containing the first validation\n error message, if any).\n */\n private async attach(blobSignedId: string, autoAttachUrl: string) {\n const formData = new FormData();\n formData.append('blob_signed_id', blobSignedId);\n\n try {\n await httpRequest(autoAttachUrl, {\n method: 'post',\n body: formData,\n headers: { 'x-http-method-override': 'PUT' }\n }).turbo();\n } catch (e) {\n const error = e as ResponseError;\n const errors = (error.jsonBody as { errors: string[] })?.errors;\n const message = errors && errors[0];\n throw new FileUploadError(\n message ||\n `Impossible d'associer le fichier (in english: error attaching file).'`,\n error.response?.status,\n ERROR_CODE_ATTACH\n );\n }\n }\n\n uploadRequestDidProgress(event: ProgressEvent) {\n const progress = (event.loaded / event.total) * 100;\n if (progress) {\n this.progressBar.progress(progress);\n }\n }\n\n directUploadWillStoreFileWithXHR(xhr: XMLHttpRequest) {\n xhr.upload.addEventListener('progress', (event) =>\n this.uploadRequestDidProgress(event)\n );\n }\n}\n","import invariant from 'tiny-invariant';\nimport { show, hide, toggle } from '@utils';\n\nimport Uploader from './uploader';\nimport {\n FileUploadError,\n ERROR_CODE_READ,\n FAILURE_CONNECTIVITY\n} from './file-upload-error';\n\ntype ErrorMessage = {\n title: string;\n retry: boolean;\n};\n\n// Given a file input in a champ with a selected file, upload a file,\n// then attach it to the dossier.\n//\n// On success, the champ is replaced by an HTML fragment describing the attachment.\n// On error, a error message is displayed above the input.\nexport class AutoUpload {\n #input: HTMLInputElement;\n #uploader: Uploader;\n\n constructor(input: HTMLInputElement, file: File) {\n const { directUploadUrl, autoAttachUrl, maxFileSize } = input.dataset;\n invariant(directUploadUrl, 'Could not find the direct upload URL.');\n this.#input = input;\n this.#uploader = new Uploader(\n input,\n file,\n directUploadUrl,\n autoAttachUrl,\n maxFileSize\n );\n }\n\n // Create, upload and attach the file.\n // On failure, display an error message and throw a FileUploadError.\n async start() {\n try {\n this.begin();\n await this.#uploader.start();\n this.succeeded();\n } catch (error) {\n this.failed(error as FileUploadError);\n throw error;\n } finally {\n this.done();\n }\n }\n\n private begin() {\n this.#input.disabled = true;\n this.hideErrorMessage();\n }\n\n private succeeded() {\n this.#input.value = '';\n }\n\n private failed(error: FileUploadError) {\n if (!document.body.contains(this.#input)) {\n return;\n }\n\n this.#uploader.progressBar.destroy();\n\n const message = this.messageFromError(error);\n this.displayErrorMessage(message);\n\n this.#input.classList.toggle('fr-text-default--error', true);\n }\n\n private done() {\n this.#input.disabled = false;\n }\n\n private messageFromError(error: FileUploadError): ErrorMessage {\n const message = error.message || error.toString();\n const canRetry = error.status && error.status != 422;\n\n if (error.failureReason == FAILURE_CONNECTIVITY) {\n return {\n title:\n 'Le fichier n’a pas pu être envoyé. Vérifiez votre connexion à Internet, puis ré-essayez. Vérifiez aussi que le pare-feu de votre appareil ou votre réseau autorise l’envoi de fichier vers ' +\n window.location.host +\n ' et static.demarches-simplifiees.fr.',\n retry: true\n };\n } else if (error.code == ERROR_CODE_READ) {\n return {\n title:\n 'Nous n’arrivons pas à lire ce fichier sur votre appareil. Essayez à nouveau, ou sélectionnez un autre fichier.',\n retry: false\n };\n } else {\n return {\n title: message,\n retry: !!canRetry\n };\n }\n }\n\n private displayErrorMessage(message: ErrorMessage) {\n const errorElement = this.errorElement;\n if (errorElement) {\n show(errorElement);\n this.errorTitleElement.textContent = message.title || '';\n toggle(this.errorRetryButton, message.retry);\n }\n }\n\n private hideErrorMessage() {\n const errorElement = this.errorElement;\n if (errorElement) {\n hide(errorElement);\n }\n }\n\n get errorElement() {\n return this.#input\n .closest('.attachment')\n ?.querySelector('.attachment-upload-error');\n }\n\n get errorTitleElement() {\n const element =\n this.errorElement?.querySelector('.fr-error-text');\n invariant(element, 'Could not find the error title element.');\n return element;\n }\n\n get errorRetryButton() {\n const element = this.errorElement?.querySelector(\n '.attachment-upload-error-retry'\n );\n invariant(element, 'Could not find the error retry button element.');\n return element;\n }\n}\n","import { httpRequest, ResponseError, getConfig } from '@utils';\nimport { matchInputElement, isButtonElement } from '@coldwired/utils';\n\nimport { ApplicationController } from './application_controller';\nimport { AutoUpload } from '../shared/activestorage/auto-upload';\nimport {\n FileUploadError,\n FAILURE_CLIENT,\n ERROR_CODE_READ\n} from '../shared/activestorage/file-upload-error';\n\nconst {\n autosave: { debounce_delay }\n} = getConfig();\n\nconst AUTOSAVE_DEBOUNCE_DELAY = debounce_delay;\nconst AUTOSAVE_TIMEOUT_DELAY = 60000;\nconst AUTOSAVE_CONDITIONAL_SPINNER_DEBOUNCE_DELAY = 200;\n\n// This is a controller we attach to each \"champ\" in the main form. It performs\n// the save and dispatches a few events that allow `AutosaveStatusController` to\n// coordinate notifications and retries:\n// * `autosave:enqueue` - dispatched when a new save attempt starts\n// * `autosave:end` - dispatched after sucessful save\n// * `autosave:error` - dispatched when an error occures\n//\n// The controller also listens to the following events:\n// * `autosave:retry` - dispatched by `AutosaveStatusController` when the user\n// clicks the retry button in the form status bar\n//\nexport class AutosaveController extends ApplicationController {\n #abortController?: AbortController;\n #latestPromise = Promise.resolve();\n #needsRetry = false;\n #pendingPromiseCount = 0;\n #spinnerTimeoutId?: ReturnType;\n\n connect() {\n this.#latestPromise = Promise.resolve();\n this.onGlobal('autosave:retry', () => this.didRequestRetry());\n this.on('change', (event) => this.onChange(event));\n this.on('input', (event) => this.onInput(event));\n // pf: allows test waiting for connected stimulus\n this.element.setAttribute('data-controller-connected', 'true');\n }\n\n disconnect() {\n this.#abortController?.abort();\n this.#latestPromise = Promise.resolve();\n }\n\n onClickRetryButton(event: Event) {\n const target = event.target;\n if (isButtonElement(target)) {\n const inputTargetSelector = target.dataset.inputTarget;\n if (inputTargetSelector) {\n const target =\n this.element.querySelector(inputTargetSelector);\n if (\n target &&\n target.type == 'file' &&\n target.dataset.autoAttachUrl &&\n target.files?.length\n ) {\n this.enqueueAutouploadRequest(target, target.files[0]);\n }\n }\n }\n }\n\n private onChange(event: Event) {\n matchInputElement(event.target, {\n file: (target) => {\n if (target.dataset.autoAttachUrl && target.files?.length) {\n this.globalDispatch('autosave:input');\n this.enqueueAutouploadRequest(target, target.files[0]);\n }\n },\n changeable: (target) => {\n this.globalDispatch('autosave:input');\n\n // Wait next tick so champs having JS can interact\n // with form elements before extracting form data.\n setTimeout(() => {\n this.enqueueAutosaveRequest();\n this.showConditionnalSpinner(target);\n }, 0);\n },\n inputable: (target) => this.enqueueOnInput(target, true),\n hidden: (target) => {\n // In comboboxes we dispatch a \"change\" event on hidden inputs to trigger autosave.\n // We want to debounce them.\n this.enqueueOnInput(target, true);\n }\n });\n }\n\n private onInput(event: Event) {\n matchInputElement(event.target, {\n inputable: (target) => {\n // Ignore input from React comboboxes. We trigger \"change\" events on them when selection is changed.\n if (target.getAttribute('role') != 'combobox') {\n const validate = this.needsValidation(target);\n this.enqueueOnInput(target, validate);\n }\n }\n });\n }\n\n private enqueueOnInput(\n target: HTMLInputElement | HTMLTextAreaElement,\n validate: boolean\n ) {\n this.globalDispatch('autosave:input');\n\n const callback = validate\n ? this.enqueueAutosaveWithValidationRequest\n : this.enqueueAutosaveRequest;\n this.debounce(callback, AUTOSAVE_DEBOUNCE_DELAY);\n\n this.showConditionnalSpinner(target);\n }\n\n private needsValidation(target: HTMLElement) {\n return target.getAttribute('aria-invalid') == 'true';\n }\n\n private showConditionnalSpinner(\n target: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement\n ) {\n const champWrapperElement = target.closest(\n '.editable-champ[data-dependent-conditions]'\n );\n\n if (!champWrapperElement) {\n return;\n }\n\n this.showSpinner(champWrapperElement);\n }\n\n private showSpinner(champElement: Element) {\n this.#spinnerTimeoutId = setTimeout(() => {\n // do not do anything if there is already a spinner for this champ, like SIRET champ\n if (!champElement.nextElementSibling?.classList.contains('spinner')) {\n const spinner = document.createElement('div');\n spinner.classList.add('spinner', 'spinner-removable');\n spinner.setAttribute('aria-live', 'live');\n spinner.setAttribute('aria-label', 'Chargement en cours…');\n champElement.insertAdjacentElement('afterend', spinner);\n }\n }, AUTOSAVE_CONDITIONAL_SPINNER_DEBOUNCE_DELAY);\n }\n\n private didRequestRetry() {\n if (this.#needsRetry) {\n this.enqueueAutosaveRequest();\n }\n }\n\n private didEnqueue() {\n this.#needsRetry = false;\n this.globalDispatch('autosave:enqueue');\n }\n\n private didSucceed() {\n this.#pendingPromiseCount -= 1;\n if (this.#pendingPromiseCount == 0) {\n this.globalDispatch('autosave:end');\n clearTimeout(this.#spinnerTimeoutId);\n }\n }\n\n private didFail(error: ResponseError) {\n this.#needsRetry = true;\n this.#pendingPromiseCount -= 1;\n this.globalDispatch('autosave:error', { error });\n }\n\n private enqueueAutouploadRequest(target: HTMLInputElement, file: File) {\n const autoupload = new AutoUpload(target, file);\n autoupload\n .start()\n .catch((e) => {\n const error = e as FileUploadError;\n\n this.globalDispatch('autosave:error');\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 if (\n error.failureReason == FAILURE_CLIENT &&\n error.code != ERROR_CODE_READ\n ) {\n throw error;\n }\n })\n .then(() => {\n this.globalDispatch('autosave:end');\n });\n }\n\n // Add a new autosave request to the queue.\n // It will be started after the previous one finishes (to prevent older form data\n // to overwrite newer data if the server does not respond in order.)\n private enqueueAutosaveRequest() {\n this.#latestPromise = this.#latestPromise.finally(() =>\n this.sendAutosaveRequest()\n .then(() => this.didSucceed())\n .catch((error) => this.didFail(error))\n );\n this.didEnqueue();\n }\n\n private enqueueAutosaveWithValidationRequest() {\n this.#latestPromise = this.#latestPromise.finally(() =>\n this.sendAutosaveRequest(true)\n .then(() => this.didSucceed())\n .catch((error) => this.didFail(error))\n );\n this.didEnqueue();\n }\n\n // Create a fetch request that saves the form.\n // Returns a promise fulfilled when the request completes.\n private sendAutosaveRequest(validate = false): Promise {\n this.#abortController = new AbortController();\n const { form, inputs } = this;\n\n if (!form || inputs.length == 0) {\n return Promise.resolve();\n }\n\n const formData = new FormData();\n for (const input of inputs) {\n if (input.type == 'checkbox') {\n formData.append(input.name, input.checked ? input.value : '');\n } else if (input.type == 'radio') {\n if (input.checked) {\n formData.append(input.name, input.value);\n }\n } else {\n // NOTE: some type inputs (like number) have an empty input.value\n // when the filled value is invalid (not a number) so we avoid them\n formData.append(input.name, input.value);\n }\n }\n if (validate) {\n formData.append('validate', 'true');\n }\n\n this.#pendingPromiseCount++;\n\n return httpRequest(form.action, {\n method: 'post',\n body: formData,\n headers: { 'x-http-method-override': 'PATCH' },\n signal: this.#abortController.signal,\n timeout: AUTOSAVE_TIMEOUT_DELAY\n }).turbo();\n }\n\n private get form() {\n return this.element.closest('form');\n }\n\n private get inputs() {\n const element = this.element as HTMLElement;\n\n return [\n ...element.querySelectorAll(\n 'input:not([type=file]), textarea, select'\n )\n ].filter((element) => !element.disabled);\n }\n}\n","import {\n enable,\n disable,\n hasClass,\n addClass,\n removeClass,\n ResponseError,\n getConfig\n} from '@utils';\n\nimport { ApplicationController } from './application_controller';\n\nconst {\n autosave: { status_visible_duration }\n} = getConfig();\nconst AUTOSAVE_STATUS_VISIBLE_DURATION = status_visible_duration;\n\n// This is a controller we attach to the status area in the main form. It\n// coordinates notifications and will dispatch `autosave:retry` event if user\n// decides to retry after an error.\n//\nexport class AutosaveStatusController extends ApplicationController {\n static targets = ['retryButton'];\n\n declare readonly retryButtonTarget: HTMLButtonElement;\n\n connect(): void {\n this.onGlobal('autosave:enqueue', () => this.didEnqueue());\n this.onGlobal('autosave:end', () => this.didSucceed());\n this.onGlobal('autosave:error', (event) =>\n this.didFail(event)\n );\n\n this.onGlobal('debounced:added', () => this.debouncedAdded());\n this.onGlobal('debounced:empty', () => this.debouncedEmpty());\n }\n\n private debouncedAdded() {\n const autosave = this.element as HTMLDivElement;\n removeClass(autosave, 'debounced-empty');\n addClass(autosave, 'debounced-added');\n }\n\n private debouncedEmpty() {\n const autosave = this.element as HTMLDivElement;\n addClass(autosave, 'debounced-empty');\n removeClass(autosave, 'debounced-added');\n }\n\n onClickRetryButton() {\n this.globalDispatch('autosave:retry');\n }\n\n private didEnqueue() {\n disable(this.retryButtonTarget);\n }\n\n private didSucceed() {\n enable(this.retryButtonTarget);\n this.setState('succeeded');\n this.debounce(this.hideSucceededStatus, AUTOSAVE_STATUS_VISIBLE_DURATION);\n }\n\n private didFail(event: CustomEvent<{ error: ResponseError }>) {\n const error = event.detail.error;\n\n if (error.response?.status == 401) {\n // If we are unauthenticated, reload the page using a GET request.\n // This will allow Devise to properly redirect us to sign-in, and then back to this page.\n document.location.reload();\n return;\n }\n\n enable(this.retryButtonTarget);\n this.setState('failed');\n\n const shouldLogError = !error.response || error.response.status != 0; // ignore timeout errors\n if (shouldLogError) {\n this.logError(error);\n }\n }\n\n private setState(state: 'succeeded' | 'failed' | 'idle') {\n const autosave = this.element as HTMLDivElement;\n if (autosave) {\n // Re-apply the state even if already present, to get a nice animation\n removeClass(autosave, 'autosave-state-idle');\n removeClass(autosave, 'autosave-state-succeeded');\n removeClass(autosave, 'autosave-state-failed');\n autosave.offsetHeight; // flush animations\n addClass(autosave, `autosave-state-${state}`);\n }\n }\n\n private hideSucceededStatus() {\n if (hasClass(this.element as HTMLElement, 'autosave-state-succeeded')) {\n this.setState('idle');\n }\n }\n\n private logError(error: ResponseError) {\n if (error && error.message) {\n console.error(error);\n this.globalDispatch('sentry:capture-exception', error);\n }\n }\n}\n","import { isButtonElement } from '@coldwired/utils';\n\nimport { ApplicationController } from './application_controller';\n\nexport class AutosaveSubmitController extends ApplicationController {\n #isSaving = false;\n #shouldSubmit = false;\n #buttonText?: string;\n\n connect(): void {\n this.onGlobal('autosave:input', () => this.didInput());\n this.onGlobal('autosave:end', () => this.didSucceed());\n this.onGlobal('autosave:error', () => this.didFail());\n this.on('click', (event) => this.onClick(event));\n }\n\n // Intercept form submit if autosave is still in progress\n private onClick(event: Event) {\n if (this.#isSaving) {\n this.#shouldSubmit = true;\n this.disableButton();\n event.preventDefault();\n }\n }\n\n private didInput() {\n this.#isSaving = true;\n this.#shouldSubmit = false;\n }\n\n // If submit was previously requested, send it, now that autosave have finished\n private didSucceed() {\n if (this.#shouldSubmit && isButtonElement(this.element)) {\n this.element.form?.requestSubmit(this.element);\n }\n this.#isSaving = false;\n this.#shouldSubmit = false;\n this.enableButton();\n }\n\n private didFail() {\n this.#isSaving = false;\n this.#shouldSubmit = false;\n this.enableButton();\n }\n\n private disableButton() {\n if (isButtonElement(this.element)) {\n const disableWith = this.element.dataset.disableWith ?? '';\n if (disableWith) {\n this.#buttonText = this.element.textContent ?? undefined;\n this.element.textContent = disableWith;\n }\n this.element.disabled = true;\n }\n }\n\n private enableButton() {\n if (isButtonElement(this.element)) {\n if (this.#buttonText) {\n this.element.textContent = this.#buttonText;\n }\n this.element.disabled = false;\n }\n }\n}\n","import { isFormInputElement, matchInputElement } from '@coldwired/utils';\n\nimport { ApplicationController } from './application_controller';\n\nconst AUTOSUBMIT_DATE_DEBOUNCE_DELAY = 5000;\nconst AUTOSUBMIT_EVENTS = ['input', 'change', 'blur'];\n\nexport class AutosubmitController extends ApplicationController {\n static targets = ['submitter', 'input'];\n static values = {\n debounceDelay: { type: Number, default: 500 }\n };\n\n declare readonly submitterTarget: HTMLButtonElement | HTMLInputElement;\n declare readonly hasSubmitterTarget: boolean;\n declare readonly inputTarget: HTMLInputElement;\n declare readonly hasInputTarget: boolean;\n declare readonly debounceDelayValue: number;\n\n #dateTimeChangedInputs = new WeakSet();\n\n connect() {\n this.on('input', (event) => this.onInput(event));\n this.on('change', (event) => this.onChange(event));\n this.on('blur', (event) => this.onBlur(event));\n }\n\n private onChange(event: Event) {\n const target = this.findTargetElement(event);\n\n matchInputElement(target, {\n date: (target) => {\n if (target.value.trim() == '' || !isNaN(Date.parse(target.value))) {\n this.#dateTimeChangedInputs.add(target);\n this.debounce(this.submit, AUTOSUBMIT_DATE_DEBOUNCE_DELAY);\n } else {\n this.#dateTimeChangedInputs.delete(target);\n this.cancelDebounce(this.submit);\n }\n },\n text: () => this.submitNow(),\n changeable: () => this.submitNow(),\n hidden: () => this.submitNow()\n });\n }\n\n private onInput(event: Event) {\n const target = this.findTargetElement(event);\n\n matchInputElement(target, {\n date: () => {},\n inputable: () => this.debounce(this.submit, this.debounceDelayValue),\n hidden: () => this.debounce(this.submit, this.debounceDelayValue)\n });\n }\n\n private onBlur(event: Event) {\n const target = this.findTargetElement(event);\n if (!target) return;\n\n matchInputElement(target, {\n date: () => {\n Promise.resolve().then(() => {\n if (this.#dateTimeChangedInputs.has(target)) {\n this.submitNow();\n }\n });\n }\n });\n }\n\n private findTargetElement(event: Event) {\n const target = event.target;\n\n if (\n !isFormInputElement(target) ||\n this.preventAutosubmit(target, event.type)\n ) {\n return null;\n }\n return target;\n }\n\n private preventAutosubmit(\n target: HTMLElement & { disabled?: boolean } & { value?: string },\n type: string\n ) {\n if (target.disabled) {\n return true;\n }\n if (this.hasInputTarget && this.inputTarget != target) {\n return true;\n }\n if (\n Boolean(target.getAttribute('data-no-autosubmit-on-empty')) &&\n target.value == ''\n ) {\n return true;\n }\n\n const noAutosubmit = this.parseNoAutosubmit(\n target.getAttribute('data-no-autosubmit')\n );\n if (Array.isArray(noAutosubmit)) {\n return noAutosubmit.includes(type);\n }\n return noAutosubmit;\n }\n\n private parseNoAutosubmit(value?: string | null): boolean | string[] {\n if (value == null) {\n return false;\n }\n const eventTypes = value\n .split(' ')\n .map((token) => token.trim())\n .filter((eventType) => AUTOSUBMIT_EVENTS.includes(eventType));\n return eventTypes.length == 0 ? true : eventTypes;\n }\n\n private submitNow() {\n this.cancelDebounce(this.submit);\n this.submit();\n }\n\n private submit() {\n const submitter = this.hasSubmitterTarget ? this.submitterTarget : null;\n const form =\n submitter?.form ?? this.element.closest('form');\n\n // Safari does not support \"formaction\" attribute on submitter passed to requestSubmit :(\n if (submitter && navigator.userAgent.indexOf('Safari') > -1) {\n submitter.click();\n } else {\n form?.requestSubmit(submitter);\n }\n }\n}\n","import { ApplicationController } from './application_controller';\nimport { disable, enable, show, hide } from '@utils';\nimport invariant from 'tiny-invariant';\n\nexport class BatchOperationController extends ApplicationController {\n static targets = ['menu', 'input', 'dropdown'];\n\n declare readonly menuTargets: HTMLButtonElement[];\n declare readonly inputTargets: HTMLInputElement[];\n declare readonly dropdownTargets: HTMLButtonElement[];\n\n onCheckOne() {\n this.toggleSubmitButtonWhenNeeded();\n deleteSelection();\n }\n\n onCheckAll(event: Event) {\n const target = event.target as HTMLInputElement;\n\n this.inputTargets.forEach((e) => (e.checked = target.checked));\n this.toggleSubmitButtonWhenNeeded();\n\n const pagination = document.querySelector('tfoot .fr-pagination');\n if (pagination) {\n displayNotice(this.inputTargets);\n }\n\n // add focus on button for a11y\n const button = document.getElementById('js_select_more');\n if (button) {\n button.focus();\n }\n }\n\n onSelectMore(event: {\n preventDefault: () => void;\n target: HTMLInputElement;\n }) {\n event.preventDefault();\n\n const target = event.target as HTMLInputElement;\n const dossierIds = target.getAttribute('data-dossiers');\n\n const hidden_input_multiple_ids = document.querySelector(\n '#input_multiple_ids_batch_operation'\n );\n if (hidden_input_multiple_ids) {\n hidden_input_multiple_ids.value = dossierIds || '';\n }\n\n hide(document.querySelector('#not_selected'));\n show(document.querySelector('#selected'));\n\n // add focus on button for a11y\n const button = document.getElementById('js_delete_selection');\n if (button) {\n button.focus();\n }\n }\n\n onSubmitInstruction(event: { srcElement: HTMLInputElement }) {\n const field_refuse = document.querySelector(\n '.js_batch_operation_motivation_refuse'\n );\n\n const field_without_continuation = document.querySelector(\n '.js_batch_operation_motivation_without-continuation'\n );\n\n if (field_refuse != null) {\n if (event.srcElement.value == 'refuser' && field_refuse.value == '') {\n field_refuse.setCustomValidity('La motivation doit être remplie');\n } else {\n field_refuse.setCustomValidity('');\n }\n }\n\n if (field_without_continuation != null) {\n if (\n event.srcElement.value == 'classer_sans_suite' &&\n field_without_continuation.value == ''\n ) {\n field_without_continuation.setCustomValidity(\n 'La motivation doit être remplie'\n );\n } else {\n field_without_continuation.setCustomValidity('');\n }\n }\n }\n\n onDeleteSelection(event: { preventDefault: () => void }) {\n event.preventDefault();\n emptyCheckboxes();\n deleteSelection();\n this.toggleSubmitButtonWhenNeeded();\n }\n\n toggleSubmitButtonWhenNeeded() {\n const buttons = [\n ...this.element.querySelectorAll('[data-operation]')\n ];\n const checked = this.inputTargets.filter((input) => input.checked);\n if (checked.length) {\n const available = buttons.filter((button) => {\n const operation = button.dataset.operation;\n invariant(operation, 'data-operation is required');\n const available = checked.every(isInputForOperation(operation));\n switchButton(button, available);\n return available;\n });\n\n if (this.menuTargets.length) {\n if (available.length) {\n this.menuTargets.forEach((e) => enable(e));\n } else {\n this.menuTargets.forEach((e) => disable(e));\n }\n }\n\n this.dropdownTargets.forEach((dropdown) => {\n const buttons = Array.from(\n document.querySelectorAll(\n `[aria-labelledby='${dropdown.id}'] button[data-operation]`\n )\n );\n\n const disabled = buttons.every((button) => button.disabled);\n\n if (disabled) {\n disable(dropdown);\n } else {\n enable(dropdown);\n }\n });\n\n // pour chaque chaque dropdown, on va chercher tous les boutons\n // si tous les boutons sont disabled, on disable le dropdown\n } else {\n this.menuTargets.forEach((e) => disable(e));\n buttons.forEach((button) => switchButton(button, false));\n\n this.dropdownTargets.forEach((e) => disable(e));\n }\n }\n}\n\nfunction isInputForOperation(operation: string) {\n return (input: HTMLInputElement) =>\n (input.dataset.operations?.split(',') ?? []).includes(operation);\n}\n\nfunction switchButton(button: HTMLButtonElement, flag: boolean) {\n if (flag) {\n enable(button);\n button.querySelectorAll('button').forEach((button) => enable(button));\n } else {\n disable(button);\n button.querySelectorAll('button').forEach((button) => disable(button));\n }\n}\n\nfunction displayNotice(inputs: HTMLInputElement[]) {\n const checkbox_all = document.querySelector(\n '#checkbox_all_batch_operation'\n );\n if (checkbox_all) {\n if (checkbox_all.checked) {\n show(document.querySelector('#js_batch_select_more'));\n hide(document.querySelector('#selected'));\n show(document.querySelector('#not_selected'));\n } else {\n hide(document.querySelector('#js_batch_select_more'));\n deleteSelection();\n }\n }\n\n const dynamic_number = document.querySelector('#dynamic_number');\n\n if (dynamic_number) {\n dynamic_number.textContent = inputs.length.toString();\n }\n}\n\nfunction deleteSelection() {\n const hidden_input_multiple_ids = document.querySelector(\n '#input_multiple_ids_batch_operation'\n );\n\n if (hidden_input_multiple_ids) {\n hidden_input_multiple_ids.value = '';\n }\n\n hide(document.querySelector('#js_batch_select_more'));\n}\n\nfunction emptyCheckboxes() {\n const inputs = document.querySelectorAll(\n 'div[data-controller=\"batch-operation\"] input[type=checkbox]'\n );\n inputs.forEach((e) => (e.checked = false));\n}\n","import { Controller } from '@hotwired/stimulus';\n\nconst SUCCESS_MESSAGE_TIMEOUT = 1000;\n\nexport class ClipboardController extends Controller {\n static values = { text: String };\n static targets = ['success', 'toHide'];\n\n declare readonly textValue: string;\n declare readonly successTarget: HTMLElement;\n declare readonly toHideTarget: HTMLElement;\n declare readonly hasSuccessTarget: boolean;\n declare readonly hasToHideTarget: boolean;\n\n #timer?: ReturnType;\n\n connect(): void {\n // some extensions or browsers block clipboard\n if (!navigator.clipboard) {\n if (this.hasToHideTarget) {\n this.toHideTarget.classList.add('hidden');\n } else {\n this.element.classList.add('hidden');\n }\n }\n }\n\n disconnect(): void {\n clearTimeout(this.#timer);\n }\n\n copy() {\n navigator.clipboard\n .writeText(this.textValue)\n .then(() => this.displayCopyConfirmation());\n }\n\n private displayCopyConfirmation() {\n if (this.hasToHideTarget) {\n this.toHideTarget.classList.add('hidden');\n }\n if (this.hasSuccessTarget) {\n this.successTarget.classList.remove('hidden');\n }\n\n clearTimeout(this.#timer);\n\n this.#timer = setTimeout(() => {\n if (this.hasSuccessTarget) {\n this.successTarget.classList.add('hidden');\n }\n if (this.hasToHideTarget) {\n this.toHideTarget.classList.remove('hidden');\n }\n }, SUCCESS_MESSAGE_TIMEOUT);\n }\n}\n","import { ApplicationController } from './application_controller';\nimport { hide, show } from '@utils';\n\nexport class ClosingNotificationController extends ApplicationController {\n static targets = [\n 'brouillonToggle',\n 'emailContentBrouillon',\n 'enCoursToggle',\n 'emailContentEnCours',\n 'submit'\n ];\n\n declare readonly brouillonToggleTarget: HTMLInputElement;\n declare readonly hasBrouillonToggleTarget: boolean;\n declare readonly enCoursToggleTarget: HTMLInputElement;\n declare readonly hasEnCoursToggleTarget: boolean;\n declare readonly emailContentBrouillonTarget: HTMLElement;\n declare readonly emailContentEnCoursTarget: HTMLElement;\n declare readonly submitTarget: HTMLButtonElement;\n\n connect() {\n this.displayBrouillonInput();\n this.displayEnCoursInput();\n this.on('change', () => this.onChange());\n }\n\n onChange() {\n this.displayBrouillonInput();\n this.displayEnCoursInput();\n }\n\n displayBrouillonInput() {\n if (this.hasBrouillonToggleTarget) {\n const brouillonToggleElement = this\n .brouillonToggleTarget as HTMLInputElement;\n\n const emailContentBrouillonElement = this\n .emailContentBrouillonTarget as HTMLElement;\n\n if (emailContentBrouillonElement) {\n if (brouillonToggleElement.checked) {\n show(emailContentBrouillonElement);\n } else {\n hide(emailContentBrouillonElement);\n }\n }\n }\n }\n\n displayEnCoursInput() {\n if (this.hasEnCoursToggleTarget) {\n const enCoursToggleElement = this.enCoursToggleTarget as HTMLInputElement;\n\n const emailContentEnCoursElement = this\n .emailContentEnCoursTarget as HTMLElement;\n\n if (emailContentEnCoursElement) {\n if (enCoursToggleElement.checked) {\n show(this.emailContentEnCoursTarget);\n } else {\n hide(this.emailContentEnCoursTarget);\n }\n }\n }\n }\n\n enableSubmitOnClick() {\n if (\n this.element.querySelectorAll('input[type=\"checkbox\"]:checked').length > 0\n ) {\n this.submitTarget.disabled = false;\n } else {\n this.submitTarget.disabled = true;\n }\n }\n}\n","import { ApplicationController } from './application_controller';\nimport { hide, show } from '@utils';\n\nexport class ClosingReasonController extends ApplicationController {\n static targets = ['closingReason', 'replacedByProcedureId', 'closingDetails'];\n\n declare closingReasonTarget: HTMLSelectElement;\n declare replacedByProcedureIdTarget: HTMLInputElement;\n declare closingDetailsTarget: HTMLInputElement;\n\n connect() {\n this.displayInput();\n this.on('change', () => this.onChange());\n }\n\n onChange() {\n this.displayInput();\n }\n\n displayInput() {\n const closingReasonSelect = this.closingReasonTarget as HTMLSelectElement;\n\n Array.from(closingReasonSelect.options).forEach((option) => {\n if (option.selected && option.value == 'internal_procedure') {\n show(this.replacedByProcedureIdTarget);\n hide(this.closingDetailsTarget);\n this.emptyValue(this.closingDetailsTarget.querySelector('input'));\n } else if (option.selected && option.value == 'other') {\n hide(this.replacedByProcedureIdTarget);\n this.emptyValue(\n this.replacedByProcedureIdTarget.querySelector('select')\n );\n show(this.closingDetailsTarget);\n this.emptyValue(this.closingDetailsTarget.querySelector('input'));\n }\n });\n }\n\n emptyValue(field: HTMLInputElement | HTMLSelectElement | null) {\n if (field) {\n field.value = '';\n }\n }\n}\n","import { ApplicationController } from './application_controller';\n\nconst DATE_PLACEHOLDER_REGEXP = /[jJmMdD]{2}\\/[jJmMdD]{2}\\/[aAyY]{4}/;\nconst DATE_EXAMPLE_REGEXP = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\nconst PARTS = {\n fr: {\n '15': 'JJ',\n '10': 'MM',\n '2022': 'AAAA'\n },\n en: {\n '15': 'dd',\n '10': 'mm',\n '2022': 'yyyy'\n }\n};\n\nexport class DateInputHintController extends ApplicationController {\n connect() {\n this.fixDateFormat(this.element);\n }\n\n private fixDateFormat(input: Element) {\n const text = input.textContent ?? '';\n const match = text.match(DATE_PLACEHOLDER_REGEXP);\n\n if (match) {\n const [placeholder, example] = this.translatePlaceholder();\n // This component behaviour can be had to test and debug. We keep a (debug) log here to help.\n console.debug(`Replace ${match[0]} with ${placeholder} and ${example}`);\n input.textContent = text\n .replace(DATE_PLACEHOLDER_REGEXP, placeholder)\n .replace(DATE_EXAMPLE_REGEXP, example);\n }\n }\n\n private translatePlaceholder() {\n const locale = document.documentElement.lang as 'fr' | 'en';\n const parts = PARTS[locale];\n const example = new Date(2022, 9, 15).toLocaleDateString();\n return [\n Object.entries(parts).reduce(\n (text, [part, str]) => text.replace(part, str),\n example\n ),\n example\n ];\n }\n}\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import format from 'date-fns/format';\n\nimport { ApplicationController } from './application_controller';\n\nexport class DatetimeController extends ApplicationController {\n #isSupported = isDateTimeSupported();\n\n connect() {\n if (!this.#isSupported) {\n const value = this.element.getAttribute('value');\n if (value) {\n const date = new Date(value);\n this.element.setAttribute('value', format(date, `dd/MM/yyyy HH:mm`));\n }\n }\n }\n}\n\nfunction isDateTimeSupported() {\n const input = document.createElement('input');\n const value = 'a';\n input.setAttribute('type', 'datetime-local');\n input.setAttribute('value', value);\n return input.value !== value;\n}\n","import { ApplicationController } from './application_controller';\n\nexport class DSFRHeaderController extends ApplicationController {\n static targets = ['notice'];\n\n declare readonly noticeTarget: HTMLElement;\n\n closeNotice() {\n this.noticeTarget.parentNode?.removeChild(this.noticeTarget);\n\n this.element.classList.remove('fr-header__with-notice-info');\n\n const event = new CustomEvent('noticeClosed', { bubbles: true });\n this.element.dispatchEvent(event);\n }\n}\n","import { httpRequest } from '@utils';\nimport { show, hide } from '@utils';\nimport { ApplicationController } from './application_controller';\n\ntype checkEmailResponse = {\n success: boolean;\n suggestions: string[];\n};\n\nexport class EmailInputController extends ApplicationController {\n static targets = ['ariaRegion', 'suggestion', 'input'];\n\n static values = {\n url: String\n };\n\n declare readonly urlValue: string;\n\n declare readonly ariaRegionTarget: HTMLElement;\n declare readonly suggestionTarget: HTMLElement;\n declare readonly inputTarget: HTMLInputElement;\n\n async checkEmail() {\n const email = this.inputTarget.value;\n\n if (!email || email.length < 5 || !email.includes('@')) {\n return;\n }\n\n if (email.toLowerCase().endsWith('@gmail.pf')) {\n const address = email.substring(0, email.indexOf('@')) + '@gmail.com';\n this.suggestionTarget.innerHTML = address;\n show(this.ariaRegionTarget);\n this.ariaRegionTarget.setAttribute('aria-live', 'assertive');\n } else if (email.toLowerCase().endsWith('.pf')) {\n this.discard();\n } else {\n const url = new URL(this.urlValue, document.baseURI);\n url.searchParams.append('email', this.inputTarget.value);\n\n const data: checkEmailResponse | null = await httpRequest(\n url.toString()\n ).json();\n\n if (data && data.suggestions && data.suggestions.length > 0) {\n this.suggestionTarget.innerHTML = data.suggestions[0];\n show(this.ariaRegionTarget);\n this.ariaRegionTarget.setAttribute('aria-live', 'assertive');\n }\n }\n }\n\n accept() {\n this.ariaRegionTarget.setAttribute('aria-live', 'off');\n hide(this.ariaRegionTarget);\n this.inputTarget.value = this.suggestionTarget.innerHTML;\n this.suggestionTarget.innerHTML = '';\n }\n\n discard() {\n this.ariaRegionTarget.setAttribute('aria-live', 'off');\n hide(this.ariaRegionTarget);\n this.suggestionTarget.innerHTML = '';\n }\n}\n","import { Controller } from '@hotwired/stimulus';\n\nexport class EnableSubmitIfCheckedController extends Controller {\n static targets = ['submit'];\n declare readonly submitTarget: HTMLButtonElement;\n\n click() {\n if (\n this.element.querySelectorAll('input[type=\"radio\"]:checked').length > 0 ||\n this.element.querySelectorAll('input[type=\"checkbox\"]:checked').length > 0\n ) {\n this.submitTarget.disabled = false;\n } else {\n this.submitTarget.disabled = true;\n }\n }\n}\n","import { ApplicationController } from './application_controller';\nimport { toggle, toggleExpandIcon } from '@utils';\n\nexport class ExpandController extends ApplicationController {\n static targets = ['content', 'icon'];\n\n declare readonly contentTarget: HTMLElement;\n declare readonly iconTarget: HTMLElement;\n\n toggle(event: Event) {\n const target = event.currentTarget as HTMLButtonElement;\n\n event.preventDefault();\n toggle(this.contentTarget);\n toggleExpandIcon(this.iconTarget);\n if (this.contentTarget.classList.contains('hidden')) {\n target.setAttribute('aria-expanded', 'false');\n } else {\n target.setAttribute('aria-expanded', 'true');\n }\n }\n}\n","import { ApplicationController } from './application_controller';\nexport class FileInputResetController extends ApplicationController {\n static targets = ['fileList'];\n declare fileListTarget: HTMLElement;\n\n connect() {\n super.connect();\n this.updateFileList();\n this.element.addEventListener('change', (event) => {\n if (\n event.target instanceof HTMLInputElement &&\n event.target.type === 'file'\n ) {\n this.updateFileList();\n }\n });\n }\n\n updateFileList() {\n const files = this.fileInput?.files ?? [];\n this.fileListTarget.innerHTML = '';\n\n const deleteLabel =\n this.element.getAttribute('data-delete-label') || 'Delete';\n\n Array.from(files).forEach((file, index) => {\n const container = document.createElement('li');\n container.classList.add('flex', 'flex-gap-2', 'fr-mb-1w');\n\n const deleteButton = this.createDeleteButton(deleteLabel, index);\n container.appendChild(deleteButton);\n\n const listItem = document.createElement('div');\n listItem.textContent = file.name;\n\n container.appendChild(listItem);\n this.fileListTarget.appendChild(container);\n });\n }\n\n createDeleteButton(deleteLabel: string, index: number) {\n const button = document.createElement('button');\n button.textContent = deleteLabel;\n button.classList.add(\n 'fr-btn',\n 'fr-btn--tertiary',\n 'fr-btn--sm',\n 'fr-icon-delete-line'\n );\n\n button.addEventListener('click', (event) => {\n event.preventDefault();\n this.removeFile(index);\n });\n\n return button;\n }\n\n removeFile(index: number) {\n const files = this.fileInput?.files;\n if (!files) return;\n\n const dataTransfer = new DataTransfer();\n Array.from(files).forEach((file, i) => {\n if (index !== i) {\n dataTransfer.items.add(file);\n }\n });\n\n if (this.fileInput) this.fileInput.files = dataTransfer.files;\n this.updateFileList();\n }\n\n private get fileInput(): HTMLInputElement | null {\n return this.element.querySelector(\n 'input[type=\"file\"]'\n ) as HTMLInputElement | null;\n }\n}\n","import { toggle } from '@utils';\nimport { ApplicationController } from './application_controller';\n\nfunction onVisibleEnableInputs(element: HTMLInputElement) {\n element.disabled = false;\n element.required = true;\n}\n\nfunction onHiddenDisableInputs(element: HTMLInputElement) {\n element.disabled = true;\n element.required = false;\n}\n\nexport class ForTiersController extends ApplicationController {\n static targets = ['emailContainer', 'emailInput', 'notificationMethod'];\n\n declare notificationMethodTargets: NodeListOf;\n declare emailContainerTarget: HTMLElement;\n declare emailInputTarget: HTMLInputElement;\n\n toggleEmailInput() {\n const isEmailSelected = this.isEmailSelected();\n\n toggle(this.emailContainerTarget, isEmailSelected);\n\n if (isEmailSelected) {\n onVisibleEnableInputs(this.emailInputTarget);\n } else {\n onHiddenDisableInputs(this.emailInputTarget);\n }\n }\n\n isEmailSelected() {\n return Array.from(this.notificationMethodTargets).some(\n (radio) => radio.value === 'email' && radio.checked\n );\n }\n}\n","import { ApplicationController } from './application_controller';\n\nexport class FormatController extends ApplicationController {\n connect() {\n const format = this.element.getAttribute('data-format');\n switch (format) {\n case 'list':\n this.on('change', (event) => {\n const target = event.target as HTMLInputElement;\n const value = this.formatList(target.value);\n replaceValue(target, value);\n });\n break;\n case 'iban':\n this.on('input', (event) => {\n const target = event.target as HTMLInputElement;\n const value = this.formatIBAN(target.value);\n replaceValue(target, value);\n });\n break;\n case 'integer':\n this.on('input', (event) => {\n const target = event.target as HTMLInputElement;\n const value = this.formatInteger(target.value);\n replaceValue(target, value);\n });\n break;\n case 'decimal':\n this.on('input', (event) => {\n const target = event.target as HTMLInputElement;\n const value = this.formatDecimal(target.value);\n replaceValue(target, value);\n });\n break;\n }\n }\n\n private formatList(value: string) {\n return value.replace(/;/g, ',');\n }\n\n private formatIBAN(value: string) {\n return value\n .replace(/[^\\dA-Z]/gi, '')\n .replace(/(.{4})/g, '$1 ')\n .trim()\n .toUpperCase();\n }\n\n private formatInteger(value: string) {\n return value.replace(/[^-?\\d]/g, '');\n }\n\n private formatDecimal(value: string) {\n let formattedNumber = value;\n const lastDotIndex = value.lastIndexOf('.');\n const lastCommaIndex = value.lastIndexOf(',');\n if (lastDotIndex != -1 && lastCommaIndex != -1) {\n if (lastDotIndex < lastCommaIndex) {\n formattedNumber = value.replace(/\\./g, '');\n } else {\n formattedNumber = value.replace(/,/g, '');\n }\n }\n return formattedNumber\n .replace(/,/g, '.')\n .replace(new RegExp(`[^-?\\\\d.]`, 'g'), '');\n }\n}\n\nfunction replaceValue(target: HTMLInputElement, value: string) {\n const delta = target.value.length - value.length;\n const start = target.selectionStart;\n const end = target.selectionStart;\n const dir = target.selectionDirection;\n target.value = value;\n target.selectionStart = start ? start - delta : 0;\n target.selectionEnd = end ? end - delta : 0;\n target.selectionDirection = dir;\n}\n","import { ApplicationController } from './application_controller';\n\nexport class GeoAreaController extends ApplicationController {\n static values = {\n id: Number\n };\n static targets = ['description'];\n\n declare readonly idValue: number;\n declare readonly descriptionTarget: HTMLInputElement;\n\n onFocus() {\n this.globalDispatch('map:feature:focus', { id: this.idValue });\n }\n\n onClick(event: MouseEvent) {\n event.preventDefault();\n this.globalDispatch('map:feature:focus', { id: this.idValue });\n }\n\n onInput() {\n this.debounce(this.updateDescription, 500);\n }\n\n private updateDescription(): void {\n this.globalDispatch('map:feature:update', {\n id: this.idValue,\n properties: { description: this.descriptionTarget.value.trim() }\n });\n }\n}\n","import { ApplicationController } from '~/controllers/application_controller';\n\nexport class HeaderSectionController extends ApplicationController {\n connect(): void {\n const target = this.element as HTMLInputElement;\n const tagName = target.tagName;\n console.log(tagName);\n if (tagName == 'H2' || tagName == 'H3') {\n const className = 'header-section-reset' + tagName[1];\n target.parentElement?.classList.add(className);\n }\n }\n}\n","import { ApplicationController } from './application_controller';\ndeclare interface modal {\n disclose: () => void;\n}\ndeclare interface dsfr {\n modal: modal;\n}\ndeclare const window: Window &\n typeof globalThis & { dsfr: (elem: HTMLElement) => dsfr };\n\nexport class InvalidIneligibiliteRulesController extends ApplicationController {\n static targets = ['dialog'];\n\n declare dialogTarget: HTMLElement;\n\n connect() {\n setTimeout(() => window.dsfr(this.dialogTarget).modal.disclose(), 100);\n }\n}\n","import { Controller } from '@hotwired/stimulus';\nimport { hide, show } from '@utils';\n\nexport class MapInfoController extends Controller {\n static targets = ['infos', 'departement', 'demarches', 'dossiers'];\n\n declare readonly infosTarget: HTMLDivElement;\n declare readonly departementTarget: HTMLDivElement;\n declare readonly demarchesTarget: HTMLDivElement;\n declare readonly dossiersTarget: HTMLDivElement;\n\n showInfo(event: Event) {\n const target = event.target as HTMLElement;\n if (target && target.dataset && target.dataset.departement) {\n target.setAttribute('stroke-width', '2.5');\n this.departementTarget.innerHTML = target.dataset.departement;\n this.demarchesTarget.innerHTML = Number(\n target.dataset.demarches\n ).toLocaleString();\n this.dossiersTarget.innerHTML = Number(\n target.dataset.dossiers\n ).toLocaleString();\n }\n show(this.infosTarget);\n }\n\n hideInfo(event: Event) {\n hide(this.infosTarget);\n const target = event.target as HTMLElement;\n target.removeAttribute('stroke-width');\n }\n}\n","import { ApplicationController } from './application_controller';\n\nexport class MenuButtonController extends ApplicationController {\n static targets = ['button', 'menu'];\n\n declare readonly buttonTarget: HTMLButtonElement;\n declare readonly menuTarget: HTMLElement;\n\n connect() {\n this.setup();\n }\n\n private get isOpen() {\n return (this.element as HTMLElement).classList.contains('open');\n }\n\n private get isMenu() {\n return this.menuTarget.getAttribute('role') == 'menu';\n }\n\n private setup() {\n // see:\n // To progressively enhance this navigation widget that is by default accessible,\n // the class to hide the menu and the inclusion of tabindex=\"-1\" on the interactive menuitem\n // content should be added with JavaScript on load.\n this.menuTarget.classList.add('fade-in-down');\n if (this.isMenu) {\n this.menuItems.map((menuItem) => menuItem.setAttribute('tabindex', '-1'));\n }\n\n this.on('click', (event) => {\n const target = event.target as HTMLElement;\n if (this.buttonTarget == target || this.buttonTarget.contains(target)) {\n event.preventDefault();\n\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n });\n this.on('keydown', (event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n if (this.buttonTarget == target) {\n this.onButtonKeydown(event);\n } else if (\n this.isMenu &&\n (this.menuTarget == target || this.menuTarget.contains(target))\n ) {\n this.onMenuKeydown(event);\n }\n });\n\n this.on(document.body, 'click', (event) => {\n const target = event.target as HTMLElement;\n if (this.isOpen && this.isClickOutside(target)) {\n this.menuTarget.classList.remove('fade-in-down');\n this.close();\n }\n });\n }\n\n private open(focusMenuItem: 'first' | 'last' = 'first') {\n this.buttonTarget.setAttribute('aria-expanded', 'true');\n this.menuTarget.parentElement?.classList.add('open');\n this.menuTarget.focus();\n\n requestAnimationFrame(() => {\n if (focusMenuItem == 'first') {\n this.setFocusToFirstMenuitem();\n } else {\n this.setFocusToLastMenuitem();\n }\n });\n }\n\n private close() {\n this.buttonTarget.setAttribute('aria-expanded', 'false');\n this.menuTarget.parentElement?.classList.remove('open');\n this.setFocusToMenuitem(null);\n }\n\n private isClickOutside(target: HTMLElement) {\n return (\n target.isConnected &&\n !this.element.contains(target) &&\n !target.closest('reach-portal') &&\n !target.closest('#rac-portal') &&\n this.isOpen\n );\n }\n\n private get currentMenuItem() {\n return this.menuTarget.querySelector(\n '[role=\"menuitem\"]:focus'\n );\n }\n\n private get menuItems() {\n return [\n ...this.menuTarget.querySelectorAll('[role=\"menuitem\"]')\n ];\n }\n\n private setFocusToMenuitem(menuItem: HTMLElement | null) {\n if (menuItem) {\n menuItem.focus();\n } else {\n this.buttonTarget.focus();\n }\n }\n\n private setFocusToFirstMenuitem() {\n this.setFocusToMenuitem(this.menuItems[0]);\n }\n\n private setFocusToLastMenuitem() {\n const length = this.menuItems.length;\n this.setFocusToMenuitem(this.menuItems[length - 1]);\n }\n\n setFocusToPreviousMenuitem() {\n const { currentMenuItem, menuItems } = this;\n\n if (currentMenuItem) {\n const index = menuItems.indexOf(currentMenuItem);\n if (index == 0) {\n this.setFocusToLastMenuitem();\n } else {\n this.setFocusToMenuitem(menuItems[index - 1]);\n }\n }\n }\n\n setFocusToNextMenuitem() {\n const { currentMenuItem, menuItems } = this;\n\n if (currentMenuItem) {\n const index = menuItems.indexOf(currentMenuItem);\n if (index == menuItems.length - 1) {\n this.setFocusToFirstMenuitem();\n } else {\n this.setFocusToMenuitem(menuItems[index + 1]);\n }\n }\n }\n\n performMenuAction(target: EventTarget | null) {\n target?.dispatchEvent(new Event('click'));\n }\n\n private onButtonKeydown(event: KeyboardEvent) {\n let stopPropagation = false;\n switch (event.key) {\n case ' ':\n case 'Enter':\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n stopPropagation = true;\n break;\n case 'ArrowDown':\n case 'Down':\n this.open();\n stopPropagation = true;\n break;\n case 'Esc':\n case 'Escape':\n this.close();\n stopPropagation = true;\n break;\n case 'Up':\n case 'ArrowUp':\n this.open('last');\n stopPropagation = true;\n break;\n default:\n break;\n }\n\n if (stopPropagation) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n onMenuKeydown(event: KeyboardEvent) {\n let stopPropagation = false;\n if (event.ctrlKey || event.altKey || event.metaKey) {\n return;\n }\n\n if (event.shiftKey) {\n if (event.key == 'Tab') {\n this.close();\n stopPropagation = true;\n }\n } else {\n switch (event.key) {\n case ' ':\n this.performMenuAction(event.target);\n stopPropagation = true;\n break;\n case 'Esc':\n case 'Escape':\n this.close();\n stopPropagation = true;\n break;\n case 'Up':\n case 'ArrowUp':\n this.setFocusToPreviousMenuitem();\n stopPropagation = true;\n break;\n case 'ArrowDown':\n case 'Down':\n this.setFocusToNextMenuitem();\n stopPropagation = true;\n break;\n case 'Home':\n case 'PageUp':\n this.setFocusToFirstMenuitem();\n stopPropagation = true;\n break;\n case 'End':\n case 'PageDown':\n this.setFocusToLastMenuitem();\n stopPropagation = true;\n break;\n case 'Tab':\n this.close();\n break;\n default:\n break;\n }\n }\n\n if (stopPropagation) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\n","import { isInputElement } from '@coldwired/utils';\nimport { ApplicationController } from './application_controller';\n\nexport class NumberInputController extends ApplicationController {\n connect() {\n this.onGlobal('wheel', (event) => {\n if (\n isInputElement(event.target) &&\n event.target.type == 'number' &&\n document.activeElement == event.target\n ) {\n event.preventDefault();\n }\n });\n }\n}\n","import { httpRequest } from '@utils';\n\nimport { ApplicationController } from './application_controller';\n\nexport class NumeroDnController extends ApplicationController {\n static values = { url: String };\n\n declare readonly urlValue: string;\n\n static targets = ['dn', 'ddn', 'info'];\n\n declare readonly dnTarget: HTMLInputElement;\n declare readonly ddnTarget: HTMLInputElement;\n declare readonly infoTarget: HTMLInputElement;\n\n connect(): void {\n this.onTarget(this.dnTarget, 'input', () => this.debounce(this.load, 200));\n this.onTarget(this.ddnTarget, 'input', () => this.debounce(this.load, 200));\n this.load();\n }\n\n private load(): void {\n if (!this.dnTarget?.validity?.patternMismatch) {\n if (this.ddnTarget.checkValidity()) {\n const url = new URL(this.urlValue, document.baseURI);\n url.searchParams.append('dn', this.dnTarget.value);\n url.searchParams.append('ddn', this.ddnTarget.value);\n httpRequest(url.toString()).turbo();\n } else {\n this.clearInfo();\n }\n } else {\n this.clearInfo();\n }\n }\n\n private clearInfo() {\n const info = this.infoTarget;\n if (info && info.innerHTML.length > 0) info.innerHTML = '';\n }\n}\n","import { ApplicationController } from './application_controller';\n\nexport class PersistedFormController extends ApplicationController {\n static values = {\n key: String\n };\n\n declare readonly keyValue: string;\n\n connect() {\n this.on('submit', () => this.onSubmit());\n this.on('input', () => this.debounce(this.onInput, 500));\n\n this.restoreInputValues();\n }\n\n onSubmit() {\n try {\n for (const input of this.inputs) {\n localStorage.removeItem(this.storageKey(input.name));\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n onInput() {\n try {\n for (const input of this.inputs) {\n localStorage.setItem(this.storageKey(input.name), input.value);\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n private restoreInputValues() {\n try {\n for (const input of this.inputs) {\n const value = localStorage.getItem(this.storageKey(input.name));\n if (value) {\n input.value = value;\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n private get inputs() {\n return this.element.querySelectorAll<\n HTMLInputElement | HTMLTextAreaElement\n >('input[type=\"text\"], input[type=\"email\"], textarea');\n }\n\n private storageKey(name: string) {\n return `persisted-value-${this.keyValue}:${name}`;\n }\n}\n","import { ApplicationController } from './application_controller';\n\nexport class ScrollToController extends ApplicationController {\n static targets = ['to'];\n declare readonly toTarget: HTMLInputElement;\n declare readonly hasToTarget: boolean;\n\n connect() {\n if (this.hasToTarget) {\n this.scrollToElement();\n } else {\n this.scrollToBottom();\n }\n }\n\n private scrollTo(top: number) {\n this.element.scrollTop = top;\n }\n\n private scrollToElement() {\n this.scrollTo(\n offset(this.toTarget).top -\n offset(this.element).top +\n this.element.scrollTop\n );\n }\n\n private scrollToBottom() {\n this.scrollTo(this.element.scrollHeight);\n }\n}\n\nfunction offset(element: Element) {\n const rect = element.getBoundingClientRect();\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n };\n}\n","import { ApplicationController } from './application_controller';\n\nexport class SelectChampPositionTemplateController extends ApplicationController {\n static targets = ['select', 'template'];\n static values = {\n templateId: String\n };\n // this element is updated via turbostream as the source of truth for all select\n declare readonly templateIdValue: string;\n declare readonly selectTargets: HTMLSelectElement[];\n\n selectTargetConnected(selectElement: HTMLSelectElement) {\n selectElement.addEventListener('focus', this);\n selectElement.addEventListener('change', this);\n }\n\n selectTargetDisconnected(selectElement: HTMLSelectElement) {\n selectElement.removeEventListener('focus', this);\n selectElement.removeEventListener('change', this);\n }\n\n handleEvent(event: Event) {\n switch (event.type) {\n case 'focus':\n this.onFocus(event);\n break;\n case 'change':\n this.onChange(event);\n break;\n }\n }\n\n private onFocus(event: Event): void {\n const focusedSelect = event.target as HTMLSelectElement;\n const focusedSelectStableId = this.getStableIdForSelect(focusedSelect);\n const template = this.element.querySelector(\n `#${this.templateIdValue}`\n );\n\n if (template) {\n const fragment = template.cloneNode(true) as HTMLSelectElement;\n\n const options = Array.from(fragment.querySelectorAll('option'));\n options.map((option) => {\n // can't move current element after current element\n if (option.value == focusedSelectStableId) {\n option.setAttribute('selected', 'selected');\n option.setAttribute('disabled', 'disabled');\n }\n });\n\n focusedSelect.innerHTML = options\n .map((option) => option.outerHTML)\n .join('');\n }\n }\n\n private onChange(event: Event): void {\n const changedSelectTarget = event.target as HTMLSelectElement;\n const stableIdDidChange =\n changedSelectTarget.value !=\n this.getStableIdForSelect(changedSelectTarget);\n if (stableIdDidChange) {\n changedSelectTarget.form?.requestSubmit();\n }\n event.stopImmediatePropagation();\n }\n\n private getStableIdForSelect(select: HTMLSelectElement): string | null {\n return select.getAttribute('data-selected');\n }\n}\n","import { ApplicationController } from './application_controller';\n\nexport class StickyTopController extends ApplicationController {\n // Ajusts top of sticky top components when there is a sticky header.\n\n connect(): void {\n const header = document.getElementById('sticky-header');\n\n if (!header) {\n return;\n }\n\n this.adjustTop(header);\n\n window.addEventListener('resize', () => this.adjustTop(header));\n\n this.listenHeaderMutations(header);\n }\n\n private listenHeaderMutations(header: HTMLElement) {\n const config = { childList: true, subtree: true };\n\n const callback: MutationCallback = (mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n this.adjustTop(header);\n break;\n }\n }\n };\n\n const observer = new MutationObserver(callback);\n observer.observe(header, config);\n }\n\n private adjustTop(header: HTMLElement) {\n const headerHeight = header.clientHeight;\n\n if (headerHeight > 0) {\n (this.element as HTMLElement).style.top = `${headerHeight + 8}px`;\n }\n }\n}\n","import { ApplicationController } from './application_controller';\nimport { hide, show } from '@utils';\n\nexport class SupportController extends ApplicationController {\n static targets = ['inputRadio', 'content'];\n\n declare readonly inputRadioTargets: HTMLInputElement[];\n declare readonly contentTargets: HTMLElement[];\n\n connect() {\n this.inputRadioTargets.forEach((inputRadio) => {\n this.on(inputRadio, 'change', this.onChange.bind(this));\n this.on(inputRadio, 'keydown', this.onChange.bind(this));\n });\n }\n\n private onChange(event: Event) {\n const target = event.target as HTMLInputElement;\n const content = this.getContentForTarget(target);\n\n this.contentTargets.forEach((content) => {\n hide(content);\n content.setAttribute('aria-hidden', 'true');\n });\n\n if (target.checked && content) {\n show(content);\n content.setAttribute('aria-hidden', 'false');\n }\n }\n\n private getLabelForTarget(target: HTMLInputElement) {\n const labelSelector = `label[for=\"${target.id}\"]`;\n return document.querySelector(labelSelector);\n }\n\n private getContentForTarget(target: HTMLInputElement) {\n const label = this.getLabelForTarget(target);\n if (!label) {\n return null;\n }\n const contentSelector = label.getAttribute('aria-controls');\n\n if (contentSelector) {\n return document.getElementById(contentSelector);\n }\n }\n}\n","import { ApplicationController } from './application_controller';\n\nexport class TextareaController extends ApplicationController {\n static values = {\n maxRows: Number\n };\n\n declare readonly maxRowsValue: number;\n\n connect() {\n if (this.maxRowsValue) {\n this.attachEvents();\n }\n }\n\n private attachEvents() {\n this.on('keyup', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n this.processTextareaContent(event);\n }\n });\n\n this.on('paste', (event: ClipboardEvent) => {\n // Wait for the paste event to complete\n setTimeout(() => this.processTextareaContent(event), 0);\n });\n }\n\n private processTextareaContent(event: Event) {\n const target = event.target as HTMLTextAreaElement;\n let lines = target.value.split('\\n');\n\n if (lines.length > this.maxRowsValue) {\n // Truncate lines to the maximum allowed\n lines = lines.slice(0, this.maxRowsValue);\n target.value = lines.join('\\n');\n\n if (event instanceof KeyboardEvent) {\n // Prevent the default action only for KeyboardEvent (enter key)\n event.preventDefault();\n }\n }\n }\n}\n","var DOCUMENT_FRAGMENT_NODE = 11;\n\nfunction morphAttrs(fromNode, toNode) {\n var toNodeAttrs = toNode.attributes;\n var attr;\n var attrName;\n var attrNamespaceURI;\n var attrValue;\n var fromValue;\n\n // document-fragments dont have attributes so lets not do anything\n if (toNode.nodeType === DOCUMENT_FRAGMENT_NODE || fromNode.nodeType === DOCUMENT_FRAGMENT_NODE) {\n return;\n }\n\n // update attributes on original DOM element\n for (var i = toNodeAttrs.length - 1; i >= 0; i--) {\n attr = toNodeAttrs[i];\n attrName = attr.name;\n attrNamespaceURI = attr.namespaceURI;\n attrValue = attr.value;\n\n if (attrNamespaceURI) {\n attrName = attr.localName || attrName;\n fromValue = fromNode.getAttributeNS(attrNamespaceURI, attrName);\n\n if (fromValue !== attrValue) {\n if (attr.prefix === 'xmlns'){\n attrName = attr.name; // It's not allowed to set an attribute with the XMLNS namespace without specifying the `xmlns` prefix\n }\n fromNode.setAttributeNS(attrNamespaceURI, attrName, attrValue);\n }\n } else {\n fromValue = fromNode.getAttribute(attrName);\n\n if (fromValue !== attrValue) {\n fromNode.setAttribute(attrName, attrValue);\n }\n }\n }\n\n // Remove any extra attributes found on the original DOM element that\n // weren't found on the target element.\n var fromNodeAttrs = fromNode.attributes;\n\n for (var d = fromNodeAttrs.length - 1; d >= 0; d--) {\n attr = fromNodeAttrs[d];\n attrName = attr.name;\n attrNamespaceURI = attr.namespaceURI;\n\n if (attrNamespaceURI) {\n attrName = attr.localName || attrName;\n\n if (!toNode.hasAttributeNS(attrNamespaceURI, attrName)) {\n fromNode.removeAttributeNS(attrNamespaceURI, attrName);\n }\n } else {\n if (!toNode.hasAttribute(attrName)) {\n fromNode.removeAttribute(attrName);\n }\n }\n }\n}\n\nvar range; // Create a range object for efficently rendering strings to elements.\nvar NS_XHTML = 'http://www.w3.org/1999/xhtml';\n\nvar doc = typeof document === 'undefined' ? undefined : document;\nvar HAS_TEMPLATE_SUPPORT = !!doc && 'content' in doc.createElement('template');\nvar HAS_RANGE_SUPPORT = !!doc && doc.createRange && 'createContextualFragment' in doc.createRange();\n\nfunction createFragmentFromTemplate(str) {\n var template = doc.createElement('template');\n template.innerHTML = str;\n return template.content.childNodes[0];\n}\n\nfunction createFragmentFromRange(str) {\n if (!range) {\n range = doc.createRange();\n range.selectNode(doc.body);\n }\n\n var fragment = range.createContextualFragment(str);\n return fragment.childNodes[0];\n}\n\nfunction createFragmentFromWrap(str) {\n var fragment = doc.createElement('body');\n fragment.innerHTML = str;\n return fragment.childNodes[0];\n}\n\n/**\n * This is about the same\n * var html = new DOMParser().parseFromString(str, 'text/html');\n * return html.body.firstChild;\n *\n * @method toElement\n * @param {String} str\n */\nfunction toElement(str) {\n str = str.trim();\n if (HAS_TEMPLATE_SUPPORT) {\n // avoid restrictions on content for things like `Hi` which\n // createContextualFragment doesn't support\n //