{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/select2/dist/js/select2.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/module.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","document","querySelector","content","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","setData","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","args","arguments","length","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","factory","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","toString","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","test","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","byteLength","set","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","val","max","min","from","to","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","initEvent","toArray$1","isArray","BlobRecord","checksum","attributes","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","notify","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","shift","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","disable","removeAttribute","enable","focus","delete","submitForm","ActiveStorage","require","ready","select2","channels","keys","webpackEmptyContext","req","code","resolve","S2","amd","requirejs","define","undef","main","_req","makeMap","handlers","defined","waiting","config","defining","hasOwn","aps","jsSuffixRegExp","hasProp","prop","normalize","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","part","baseParts","split","starMap","nodeIdCompat","charAt","concat","splice","makeRequire","relName","forceSync","makeNormalize","makeLoad","depName","callDep","splitPrefix","prefix","index","makeRelParts","makeConfig","relParts","plugin","parts","relResourceName","f","pr","uri","deps","cjsModule","usingExports","callbackType","load","alt","cfg","_defined","_$","console","Utils","getMethods","theClass","proto","methods","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","unshift","argCount","calledConstructor","ctr","displayName","superMethod","calledMethod","originalMethod","decoratedMethod","Observable","listeners","on","trigger","_type","invoke","len","generateChars","chars","random","func","context","_convertData","originalKey","dataLevel","toLowerCase","hasScroll","$el","overflowX","overflowY","innerHeight","scrollHeight","innerWidth","scrollWidth","escapeMarkup","markup","replaceMap","__cache","GetUniqueElementId","select2Id","StoreData","GetData","RemoveData","copyNonInternalCssClasses","dest","src","destinationClasses","trim","clazz","sourceClasses","replacements","Results","$element","dataAdapter","render","$results","attr","clear","empty","displayMessage","hideLoading","$message","className","hideMessages","find","remove","$options","results","sort","item","$option","children","position","$dropdown","sorter","highlightFirstItem","$selected","ensureHighlightVisible","setClasses","self","current","selectedIds","each","classList","add","showLoading","loading","loadingMore","$loading","prepend","attrs","_resultId","title","role","label","template","$children","child","$child","$childrenContainer","container","$container","isOpen","removeAttr","$highlighted","getHighlightedResults","hasClass","currentIndex","nextIndex","$next","eq","currentOffset","offset","top","nextTop","nextOffset","scrollTop","outerHeight","nextBottom","mousewheel","bottom","deltaY","isAtTop","isAtBottom","height","$this","originalEvent","removeClass","offsetDelta","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","which","update","_attachCloseHandler","_detachCloseHandler","activeElement","contains","$select","closest","off","isEnabled","isDisabled","SingleSelection","$rendered","selectionContainer","selection","formatted","MultipleSelection","parent","$selections","selectionIdPrefix","selectionId","removeItem","$remove","Placeholder","decorated","placeholder","normalizePlaceholder","_","createPlaceholder","$placeholder","placeholderTitle","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","prevented","removeAll","Search","searchLabel","$search","$searchContainer","_transferTabIndex","resizeSearch","_keyUpPrevented","isDefaultPrevented","$previousChoice","last","searchRemoveChoice","msie","documentMode","disableInputEvents","handleSearch","searchHadFocus","term","css","width","SelectionCSS","selectionCssClass","addClass","EventRelay","relayEvents","preventableEvents","Translation","dict","all","extend","translation","_cache","loadPath","path","translations","BaseAdapter","query","generateResultId","SelectAdapter","selectedElement","select","currentData","unselect","addOptions","textContent","innerText","normalizedData","_normalizeItem","defaults","matcher","ArrayAdapter","_dataToConvert","convertToOptions","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","replaceWith","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","q","transport","failure","$request","then","fail","_request","abort","request","delay","_queryTimeout","clearTimeout","Tags","tags","createTag","insertTag","tag","wrapper","checkChildren","_removeOldTags","page","Tokenizer","tokenizer","dropdown","createAndSelect","tokenData","separators","termChar","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","_checkIfMaximumSelected","successCallback","count","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","loadMoreIfNeeded","isLoadMoreVisible","documentElement","loadMore","pagination","more","AttachBody","$dropdownParent","_showDropdown","_attachPositioningHandler","_bindContainerResultHandlers","_hideDropdown","_detachPositioningHandler","$dropdownContainer","detach","_containerResultsHandlersBound","_positionDropdown","_resizeDropdown","scrollEvent","resizeEvent","orientationEvent","$watchers","parents","scrollLeft","y","ev","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","left","$offsetParent","offsetParent","parentOffset","isConnected","outerWidth","minWidth","appendTo","countResults","MinimumResultsForSearch","minimumResultsForSearch","Infinity","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","DropdownCSS","dropdownCssClass","TagsSearchHighlight","$firstOption","firstElement","errorLoading","inputTooLong","overChars","inputTooShort","maximumSelected","noResults","searching","removeAllItems","search","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","tokenSeparators","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","selectionAdapter","allowClear","language","_resolveLanguage","uniqueLanguages","_processTranslations","debug","stripDiacritics","original","amdLanguageBase","autocomplete","dropdownAutoWidth","scrollAfterSelect","templateResult","templateSelection","theme","applyFromElement","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","isEmptyObject","isPlainObject","resolvedLanguages","baseLanguage","languageData","ex","warn","camelCase","convertedData","Options","fromElement","excludedData","dir","dataset","upperCaseLetter","letter","attributeName","dataName","dataValue","jquery","Select2","_generateId","tabindex","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","insertAfter","_resolveWidth","WIDTH","styleWidth","elementWidth","getComputedStyle","_syncA","_syncS","_syncSubtree","_observer","MutationObserver","mutations","observe","childList","subtree","nonRelayEvents","toggleDropdown","altKey","close","_isChangeMutation","addedNodes","removedNodes","some","mutation","changed","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","hasFocus","newVal","disconnect","removeData","thisMethods","instanceOptions","right","auto","basePlacements","variationPlacements","reduce","acc","placement","beforeRead","read","afterRead","beforeMain","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","nodeName","getWindow","node","ownerDocument","defaultView","isElement","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","enabled","phase","_ref","styles","assign","effect","_ref2","initialStyles","popper","strategy","margin","arrow","reference","attribute","requires","getBasePlacement","round","getBoundingClientRect","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","getLayoutRect","clientRect","abs","offsetLeft","offsetTop","rootNode","getRootNode","next","isSameNode","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","getOffsetParent","isFirefox","navigator","userAgent","currentNode","transform","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","padding","rects","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","center","axisProp","centerOffset","_options$element","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","win","heightProp","widthProp","visualViewport","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","pageXOffset","pageYOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","getScrollParent","listScrollParents","list","_element$ownerDocumen","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","Map","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","v","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","order","modifiers","visited","Set","modifier","dep","has","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","orderModifiers","merged","existing","mergeByName","_ref3$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","Promise","onFirstUpdate","_KEY_TO_DIRECTION","eventListeners","_get","Reflect","receiver","base","_superPropBase","desc","getOwnPropertyDescriptor","_getPrototypeOf","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","source","_defineProperty","getOwnPropertyDescriptors","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","getPrototypeOf","_classCallCheck","_defineProperties","_createClass","_slicedToArray","_arrayWithHoles","_s","_e","_arr","_n","_d","err","_iterableToArrayLimit","_nonIterableRest","arr2","TRANSITION_END","getSelector","hrefAttr","includes","startsWith","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","nodeType","getElement","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","RegExp","isVisible","getClientRects","getPropertyValue","Node","ELEMENT_NODE","findShadowRoot","attachShadow","noop","reflow","getjQuery","DOMContentLoadedCallbacks","isRTL","defineJQueryPlugin","NAME","JQUERY_NO_CONFLICT","jQueryInterface","noConflict","execute","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","getUidEvent","uid","getEvent","findHandler","events","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","wrapFn","relatedTarget","delegateTarget","_normalizeParams2","previousFn","domElements","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","one","_normalizeParams4","inNamespace","isNamespace","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","jQueryEvent","isNative","nativeDispatch","isPropagationStopped","isImmediatePropagationStopped","elementMap","Data","instanceMap","BaseComponent","_element","DATA_KEY","EVENT_KEY","getOwnPropertyNames","propertyName","isAnimated","getInstance","enableDismissTrigger","component","clickEvent","getOrCreateInstance","EVENT_KEY$c","EVENT_CLOSE","EVENT_CLOSED","Alert","_BaseComponent","_super","_queueCallback","_destroyElement","dispose","EVENT_KEY$b","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","_super2","toggle","normalizeData","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","pureKey","getDataAttribute","SelectorEngine","findOne","ancestor","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","NAME$b","EVENT_KEY$a","DATA_API_KEY$6","Default$a","interval","keyboard","slide","pause","wrap","touch","DefaultType$a","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE_ITEM","Carousel","_BaseComponent3","_super3","_this3","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","nextWhenVisible","_this4","activeIndex","_getItemIndex","absDeltax","_this5","_keydown","_addTouchEventListeners","_this6","hasPointerPenTouch","pointerType","clientX","touches","_handleSwipe","itemImg","move","isNext","eventDirectionName","targetIndex","fromIndex","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_this7","_directionToOrder","activeElementIndex","nextElement","_getItemByOrder","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","triggerSlidEvent","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","NAME$a","DATA_KEY$9","EVENT_KEY$9","Default$9","DefaultType$9","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE$4","Collapse","_BaseComponent4","_super4","_this8","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","_this9","activesData","actives","tempActiveData","elemActive","dimension","_getDimension","capitalizedDimension","scrollSize","_this10","triggerArrayLength","_this11","triggerArray","NAME$9","EVENT_KEY$8","DATA_API_KEY$4","ESCAPE_KEY$2","SPACE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$6","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$8","popperConfig","autoClose","DefaultType$8","_BaseComponent5","_super5","_this12","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_createPopper","_completeHide","Default","DefaultType","referenceElement","_getPopperConfig","isDisplayStatic","parentDropdown","isEnd","_this13","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","_ref6","items","toggles","composedPath","isMenuTarget","isActive","getToggleButton","_selectMenuItem","clearMenus","dataApiKeydownHandler","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","documentWidth","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","styleProp","_this14","scrollbarWidth","_applyManipulationCallback","_resetElementAttributes","actualValue","removeProperty","callBack","Default$7","rootElement","clickCallback","DefaultType$7","NAME$8","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","_this15","backdrop","_this16","Default$6","trapElement","autofocus","DefaultType$6","EVENT_KEY$7","EVENT_FOCUSIN$1","EVENT_KEYDOWN_TAB","TAB_NAV_BACKWARD","FocusTrap","_isActive","_lastTabNavDirection","_this17","_this$_config","_handleFocusin","_handleKeydown","shiftKey","NAME$6","EVENT_KEY$6","ESCAPE_KEY$1","Default$5","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","Modal","_BaseComponent6","_super6","_this18","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_ignoreBackdropClick","_scrollBar","_this19","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this20","deactivate","_hideModal","htmlElement","_this21","modalBody","activate","_this22","_triggerBackdropTransition","_this23","_this24","_resetAdjustments","_this25","currentTarget","_this26","_this$_element","isModalOverflowing","isBodyOverflowing","paddingLeft","paddingRight","_this27","showEvent","allReadyOpen","NAME$5","EVENT_KEY$5","DATA_API_KEY$2","EVENT_LOAD_DATA_API$1","Default$4","DefaultType$4","CLASS_NAME_SHOW$3","OPEN_SELECTOR","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","Offcanvas","_BaseComponent7","_super7","_this28","_this29","visibility","_this30","blur","_this31","_this32","_this33","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","area","br","col","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","_ref7","createdDocument","_ref8","elementName","attributeList","allowedAttributes","allowedAttributeList","nodeValue","regExp","attributeRegex","allowedAttribute","NAME$4","EVENT_KEY$4","DISALLOWED_ATTRIBUTES","DefaultType$3","animation","customClass","sanitize","AttachmentMap","AUTO","TOP","BOTTOM","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","_BaseComponent8","Tooltip","_super8","_this34","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_disposePopper","_this35","isWithContent","shadowRoot","isInTheDom","getTitle","tipId","getElementById","getUID","attachment","_getAttachment","_addAttachmentClass","_tip$classList","_ref9","_resolvePossibleFunction","prevHoverState","_this36","_ref10","_cleanTipClass","setContent","_sanitizeAndSetContent","templateElement","setElementContent","_getDelegateConfig","_this37","_this38","_handlePopperPlacementChange","_getBasicClassPrefix","updateAttachment","_this39","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","basicClassPrefixRegex","tabClass","tClass","EVENT_KEY$3","Default$2","DefaultType$2","Event$1","Popover","_Tooltip","_super9","_getContent","NAME$2","EVENT_KEY$2","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","METHOD_POSITION","ScrollSpy","_BaseComponent9","_super10","_this40","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","_this41","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","maxScroll","_getOffsetHeight","_activate","_clear","queries","listGroup","navItem","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","_BaseComponent10","_super11","_this42","listElement","itemSelector","hideEvent","_this43","active","isTransitioning","_transitionComplete","dropdownChild","dropdownElement","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_BaseComponent11","_super12","_this44","_hasMouseInteraction","_hasKeyboardInteraction","_this45","_clearTimeout","_maybeScheduleHide","_this46","_this47","isInteracting","_this48","_onInteraction","global","w","noGlobal","getProto","_slice","flat","array","class2type","fnToString","ObjectFunctionString","support","isFunction","isWindow","preservedScriptAttributes","noModule","DOMEval","doc","toType","version","init","isArrayLike","pushStack","elems","merge","prevObject","even","grep","_elem","odd","copy","copyIsArray","clone","deep","expando","isReady","msg","Ctor","globalEval","makeArray","inArray","invert","callbackExpect","arg","guid","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","Date","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","pushNative","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","childNodes","els","seed","nid","groups","newSelector","newContext","exec","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","qsaError","cache","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","firstChild","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","what","_argument","simple","forward","ofType","_context","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","idx","unmatched","lang","elemLang","tabIndex","selectedIndex","_matchIndexes","radio","checkbox","password","image","submit","tokens","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","sibling","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","rnothtmlwhite","Identity","Thrower","adoptValue","reject","noValue","promise","Callbacks","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","once","stopOnFalse","lock","locked","fireWith","fired","Deferred","tuples","_state","_promise","always","deferred","pipe","fns","newDefer","tuple","returned","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","readyException","readyList","completed","catch","readyWait","wait","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","string","acceptData","owner","hasData","dataPriv","dataUser","rbrace","rmultiDash","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","defer","pnum","rcssNum","cssExpand","isAttached","composed","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","wrapMap","thead","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","ignored","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","_on","types","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","handleObjIn","eventHandle","handleObj","namespaces","origType","elemData","handle","triggered","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","preDispatch","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","addProp","hook","noBubble","beforeunload","returnValue","timeStamp","now","isSimulated","changedTouches","eventPhase","pageX","pageY","view","charCode","keyCode","buttons","clientY","offsetX","offsetY","pointerId","screenX","screenY","targetTouches","toElement","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","_remove","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","insertBefore","before","after","replaceChild","prependTo","replaceAll","insert","rnumnonpx","getStyles","opener","swap","old","rboxStyle","curCSS","computed","maxWidth","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","borderTopWidth","borderBottomWidth","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","box","isBorderBox","computedVal","extra","delta","getWidthOrHeight","valueIsBorderBox","offsetProp","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","scrollboxSizeBuggy","border","suffix","expand","expanded","propHooks","run","percent","eased","duration","pos","step","fx","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","requestAnimationFrame","tick","createFxNow","genFx","includeWidth","createTween","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","gotoEnd","propFilter","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","time","timeout","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","classes","curValue","finalValue","toggleClass","stateVal","isValidValue","classNames","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","processData","async","contentType","accepts","responseFields","converters","ajaxSetup","settings","ajaxTransport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","overrideMimeType","mimeType","finalText","hasContent","ifModified","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","xhrSupported","cors","_callback","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","binary","_callback2","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","webpackPolyfill","deprecate","paths"],"mappings":"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,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,OAAQ,KACR,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAU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","file":"js/application-66ada61f785e47781921.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 120);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n 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\n function md5blk(s) {\n var md5blks = [],\n i;\n\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\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\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\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n function rhex(n) {\n var s = \"\",\n j;\n\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\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\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\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\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\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\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\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\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\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\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\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\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var 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 return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(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\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\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 var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\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 }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var 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(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\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\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nimport Rails from \"@rails/ujs\"\nimport * as ActiveStorage from \"@rails/activestorage\"\nimport \"channels\"\nimport \"bootstrap\"\nimport \"stylesheets/application\"\nrequire('select2')\nrequire(\"select2/dist/css/select2\")\n\n$(document).ready(function() {\n $('#entry_visitor').select2();\n});\n\nRails.start()\nActiveStorage.start()\n","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 122;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * Select2 4.1.0-rc.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n})(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 = function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\n\n var S2;\n\n (function () {\n if (!S2 || !S2.requirejs) {\n if (!S2) {\n S2 = {};\n } else {\n require = S2;\n }\n /**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n //Going sloppy to avoid 'use strict' string cost, but strict practices should\n //be followed.\n\n /*global setTimeout: false */\n\n\n var requirejs, require, define;\n\n (function (undef) {\n var main,\n _req,\n makeMap,\n handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n\n\n function normalize(name, baseName) {\n var nameParts,\n nameSegment,\n mapValue,\n foundMap,\n lastIndex,\n foundI,\n foundStarMap,\n starI,\n i,\n j,\n part,\n normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = map && map['*'] || {}; //Adjust any relative paths.\n\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1; // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n } // Starts with a '.' so need the baseName\n\n\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n } //start trimDots\n\n\n for (i = 0; i < name.length; i++) {\n part = name[i];\n\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || i === 1 && name[2] === '..' || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n } //end trimDots\n\n\n name = name.join('/');\n } //Apply map config if available.\n\n\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')]; //baseName segment has config, find if it has one for\n //this name.\n\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n } //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n\n\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0); //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n\n return _req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n\n return defined[name];\n } //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n\n\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n\n return [prefix, name];\n } //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n\n\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n\n\n makeMap = function makeMap(name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n } //Normalize according\n\n\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n\n if (prefix) {\n plugin = callDep(prefix);\n }\n } //Using ridiculous property names for space reasons\n\n\n return {\n f: prefix ? prefix + '!' + name : name,\n //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return config && config.config && config.config[name] || {};\n };\n }\n\n handlers = {\n require: function require(name) {\n return makeRequire(name);\n },\n exports: function exports(name) {\n var e = defined[name];\n\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return defined[name] = {};\n }\n },\n module: function module(name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function main(name, deps, callback, relName) {\n var cjsModule,\n depName,\n ret,\n map,\n i,\n relParts,\n args = [],\n callbackType = _typeof(callback),\n usingExports; //Use name if no relName\n\n\n relName = relName || name;\n relParts = makeRelParts(relName); //Call the callback to define the module, if necessary.\n\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f; //Fast path CommonJS standard dependencies.\n\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) || hasProp(waiting, depName) || hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef && cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = _req = function req(deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n } //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n\n\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n\n if (config.deps) {\n _req(config.deps, config.callback);\n }\n\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n } //Support require(['a'])\n\n\n callback = callback || function () {}; //If relName is a function, it is an errback handler,\n //so remove it.\n\n\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n } //Simulate async callback;\n\n\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return _req;\n };\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n\n\n _req.config = function (cfg) {\n return _req(cfg);\n };\n /**\n * Expose module registry for debugging and tooling\n */\n\n\n requirejs._defined = defined;\n\n define = function define(name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n } //This module may not have dependencies\n\n\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n })();\n\n S2.requirejs = requirejs;\n S2.require = require;\n S2.define = define;\n }\n })();\n\n S2.define(\"almond\", function () {});\n /* global jQuery:false, $:false */\n\n S2.define('jquery', [], function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error('Select2: An instance of jQuery or a jQuery-compatible library was not ' + 'found. Make sure that you are including jQuery before Select2 on your ' + 'web page.');\n }\n\n return _$;\n });\n S2.define('select2/utils', ['jquery'], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor() {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n return ChildClass;\n };\n\n function getMethods(theClass) {\n var proto = theClass.prototype;\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass() {\n var unshift = Array.prototype.unshift;\n var argCount = DecoratorClass.prototype.constructor.length;\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr() {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function calledMethod(methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function originalMethod() {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n return function () {\n var unshift = Array.prototype.unshift;\n unshift.call(arguments, originalMethod);\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function Observable() {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n this.listeners = this.listeners || {}; // Params should always come in as an array\n\n if (params == null) {\n params = [];\n } // If there are no arguments to the event, use a temporary object\n\n\n if (params.length === 0) {\n params.push({});\n } // Set the `_type` of the first object to the event\n\n\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]; // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY; //Check both x and y declarations\n\n if (overflowX === overflowY && (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return $el.innerHeight() < el.scrollHeight || $el.innerWidth() < el.scrollWidth;\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n }; // Do not try to escape the markup if it's not a string\n\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n }; // Cache objects in Utils.__cache instead of $.data (see #4346)\n\n\n Utils.__cache = {};\n var id = 0;\n\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id with a prefix.\n // If an id already exists, it simply returns it with a prefix.\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id != null) {\n return select2Id;\n } // If element has id, use it.\n\n\n if (element.id) {\n select2Id = 'select2-data-' + element.id;\n } else {\n select2Id = 'select2-data-' + (++id).toString() + '-' + Utils.generateChars(4);\n }\n\n element.setAttribute('data-select2-id', select2Id);\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n Utils.copyNonInternalCssClasses = function (dest, src) {\n var classes;\n var destinationClasses = dest.getAttribute('class').trim().split(/\\s+/);\n destinationClasses = destinationClasses.filter(function (clazz) {\n // Save all Select2 classes\n return clazz.indexOf('select2-') === 0;\n });\n var sourceClasses = src.getAttribute('class').trim().split(/\\s+/);\n sourceClasses = sourceClasses.filter(function (clazz) {\n // Only copy non-Select2 classes\n return clazz.indexOf('select2-') !== 0;\n });\n var replacements = destinationClasses.concat(sourceClasses);\n dest.setAttribute('class', replacements.join(' '));\n };\n\n return Utils;\n });\n S2.define('select2/results', ['jquery', './utils'], function ($, Utils) {\n function Results($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $('');\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n this.clear();\n this.hideLoading();\n var $message = $('
  • ');\n var message = this.options.get('translations').get(params.message);\n $message.append(escapeMarkup(message(params.args)));\n $message[0].className += ' select2-results__message';\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n var $option = this.option(item);\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results.find('.select2-results__option--selectable');\n var $selected = $options.filter('.select2-results__option--selected'); // Check if there are any selected options\n\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n this.data.current(function (selected) {\n var selectedIds = selected.map(function (s) {\n return s.id.toString();\n });\n var $options = self.$results.find('.select2-results__option--selectable');\n $options.each(function () {\n var $option = $(this);\n var item = Utils.GetData(this, 'data'); // id needs to be converted to a string when comparing\n\n var id = '' + item.id;\n\n if (item.element != null && item.element.selected || item.element == null && selectedIds.indexOf(id) > -1) {\n this.classList.add('select2-results__option--selected');\n $option.attr('aria-selected', 'true');\n } else {\n this.classList.remove('select2-results__option--selected');\n $option.attr('aria-selected', 'false');\n }\n });\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n var loadingMore = this.options.get('translations').get('searching');\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.classList.add('select2-results__option');\n option.classList.add('select2-results__option--selectable');\n var attrs = {\n 'role': 'option'\n };\n var matches = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;\n\n if (data.element != null && matches.call(data.element, ':disabled') || data.element == null && data.disabled) {\n attrs['aria-disabled'] = 'true';\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--disabled');\n }\n\n if (data.id == null) {\n option.classList.remove('select2-results__option--selectable');\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--group');\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n this.template(data, label);\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n var $child = this.option(child);\n $children.push($child);\n }\n\n var $childrenContainer = $('', {\n 'class': 'select2-results__options select2-results__options--nested',\n 'role': 'none'\n });\n $childrenContainer.append($children);\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n var id = container.id + '-results';\n this.$results.attr('id', id);\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n self.setClasses();\n self.ensureHighlightVisible();\n });\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.hasClass('select2-results__option--selected')) {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n var $options = self.$results.find('.select2-results__option--selectable');\n var currentIndex = $options.index($highlighted); // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first\n\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n $next.trigger('mouseenter');\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n var $options = self.$results.find('.select2-results__option--selectable');\n var currentIndex = $options.index($highlighted);\n var nextIndex = currentIndex + 1; // If we are at the last option, stay there\n\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n $next.trigger('mouseenter');\n var currentOffset = self.$results.offset().top + self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n container.on('results:focus', function (params) {\n params.element[0].classList.add('select2-results__option--highlighted');\n params.element[0].setAttribute('aria-selected', 'true');\n });\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(self.$results.get(0).scrollHeight - self.$results.height());\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option--selectable', function (evt) {\n var $this = $(this);\n var data = Utils.GetData(this, 'data');\n\n if ($this.hasClass('select2-results__option--selected')) {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n this.$results.on('mouseenter', '.select2-results__option--selectable', function (evt) {\n var data = Utils.GetData(this, 'data');\n self.getHighlightedResults().removeClass('select2-results__option--highlighted').attr('aria-selected', 'false');\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results.find('.select2-results__option--highlighted');\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('.select2-results__option--selectable');\n var currentIndex = $options.index($highlighted);\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n });\n S2.define('select2/keys', [], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n return KEYS;\n });\n S2.define('select2/selection/base', ['jquery', '../utils', '../keys'], function ($, Utils, KEYS) {\n function BaseSelection($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $('' + '');\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n this.$selection = $selection;\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n this.container = container;\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this; // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (document.activeElement == self.$selection[0] || $.contains(self.$selection[0], document.activeElement)) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n var $select = $target.closest('.select2');\n var $all = $('.select2.select2-container--open');\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n\n\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n\n\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n });\n S2.define('select2/selection/single', ['jquery', './base', '../utils', '../keys'], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection() {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--single');\n $selection.html('' + '' + '' + '');\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id).attr('role', 'textbox').attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n this.$selection.attr('aria-controls', id);\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n this.$selection.on('focus', function (evt) {// User focuses on the container\n });\n this.$selection.on('blur', function (evt) {// User exits the container\n });\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n $rendered.empty().append(formatted);\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n });\n S2.define('select2/selection/multiple', ['jquery', './base', '../utils'], function ($, BaseSelection, Utils) {\n function MultipleSelection($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--multiple');\n $selection.html('');\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n this.$selection.on('click', '.select2-selection__choice__remove', function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n var data = Utils.GetData($selection[0], 'data');\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n });\n this.$selection.on('keydown', '.select2-selection__choice__remove', function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n evt.stopPropagation();\n });\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $('
  • ' + '' + '' + '
  • ');\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n var selectionIdPrefix = this.$selection.find('.select2-selection__rendered').attr('id') + '-choice-';\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n var selectionId = selectionIdPrefix + Utils.generateChars(4) + '-';\n\n if (selection.id) {\n selectionId += selection.id;\n } else {\n selectionId += Utils.generateChars(4);\n }\n\n $selection.find('.select2-selection__choice__display').append(formatted).attr('id', selectionId);\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n var removeItem = this.options.get('translations').get('removeItem');\n var $remove = $selection.find('.select2-selection__choice__remove');\n $remove.attr('title', removeItem());\n $remove.attr('aria-label', removeItem());\n $remove.attr('aria-describedby', selectionId);\n Utils.StoreData($selection[0], 'data', selection);\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.append($selections);\n };\n\n return MultipleSelection;\n });\n S2.define('select2/selection/placeholder', [], function () {\n function Placeholder(decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n $placeholder.html(this.display(placeholder));\n $placeholder[0].classList.add('select2-selection__placeholder');\n $placeholder[0].classList.remove('select2-selection__choice');\n var placeholderTitle = placeholder.title || placeholder.text || $placeholder.text();\n this.$selection.find('.select2-selection__rendered').attr('title', placeholderTitle);\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = data.length == 1 && data[0].id != this.placeholder.id;\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n var $placeholder = this.createPlaceholder(this.placeholder);\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n });\n S2.define('select2/selection/allowClear', ['jquery', '../keys', '../utils'], function ($, KEYS, Utils) {\n function AllowClear() {}\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error('Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.');\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear', function (evt) {\n self._handleClear(evt);\n });\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected\n\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n var data = Utils.GetData($clear[0], 'data');\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n }; // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n\n this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out.\n\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n this.$selection.find('.select2-selection__clear').remove();\n this.$selection[0].classList.remove('select2-selection--clearable');\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) {\n return;\n }\n\n var selectionId = this.$selection.find('.select2-selection__rendered').attr('id');\n var removeAll = this.options.get('translations').get('removeAllItems');\n var $remove = $('');\n $remove.attr('title', removeAll());\n $remove.attr('aria-label', removeAll());\n $remove.attr('aria-describedby', selectionId);\n Utils.StoreData($remove[0], 'data', data);\n this.$selection.prepend($remove);\n this.$selection[0].classList.add('select2-selection--clearable');\n };\n\n return AllowClear;\n });\n S2.define('select2/selection/search', ['jquery', '../utils', '../keys'], function ($, Utils, KEYS) {\n function Search(decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var searchLabel = this.options.get('translations').get('search');\n var $search = $('' + '' + '');\n this.$searchContainer = $search;\n this.$search = $search.find('textarea');\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n\n $rendered.append(this.$searchContainer);\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n var selectionId = container.id + '-container';\n decorated.call(this, container, $container);\n self.$search.attr('aria-describedby', selectionId);\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n container.on('close', function () {\n self.$search.val('');\n self.resizeSearch();\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n self.trigger('keypress', evt);\n self._keyUpPrevented = evt.isDefaultPrevented();\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$selection.find('.select2-selection__choice').last();\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n self.searchRemoveChoice(item);\n evt.preventDefault();\n }\n }\n });\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n }); // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n\n this.$selection.on('input.searchcheck', '.select2-search--inline', function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n } // Unbind the duplicated `keyup` event\n\n\n self.$selection.off('keyup.search');\n });\n this.$selection.on('keyup.search input.search', '.select2-search--inline', function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which; // We can freely ignore events from modifier keys\n\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n } // Tabbing will be handled during the `keydown` phase\n\n\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n });\n };\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n\n\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n this.$search.attr('placeholder', '');\n decorated.call(this, data);\n this.resizeSearch();\n\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n var width = '100%';\n\n if (this.$search.attr('placeholder') === '') {\n var minimumWidth = this.$search.val().length + 1;\n width = minimumWidth * 0.75 + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n });\n S2.define('select2/selection/selectionCss', ['../utils'], function (Utils) {\n function SelectionCSS() {}\n\n SelectionCSS.prototype.render = function (decorated) {\n var $selection = decorated.call(this);\n var selectionCssClass = this.options.get('selectionCssClass') || '';\n\n if (selectionCssClass.indexOf(':all:') !== -1) {\n selectionCssClass = selectionCssClass.replace(':all:', '');\n Utils.copyNonInternalCssClasses($selection[0], this.$element[0]);\n }\n\n $selection.addClass(selectionCssClass);\n return $selection;\n };\n\n return SelectionCSS;\n });\n S2.define('select2/selection/eventRelay', ['jquery'], function ($) {\n function EventRelay() {}\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = ['open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting', 'clear', 'clearing'];\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting', 'clearing'];\n decorated.call(this, container, $container);\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if (relayEvents.indexOf(name) === -1) {\n return;\n } // The parameters should always be an object\n\n\n params = params || {}; // Generate the jQuery event for the Select2 event\n\n var evt = $.Event('select2:' + name, {\n params: params\n });\n self.$element.trigger(evt); // Only handle preventable events if it was one\n\n if (preventableEvents.indexOf(name) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n });\n S2.define('select2/translation', ['jquery', 'require'], function ($, require) {\n function Translation(dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n }; // Static functions\n\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n });\n S2.define('select2/diacritics', [], function () {\n var diacritics = {\n \"\\u24B6\": 'A',\n \"\\uFF21\": 'A',\n \"\\xC0\": 'A',\n \"\\xC1\": 'A',\n \"\\xC2\": 'A',\n \"\\u1EA6\": 'A',\n \"\\u1EA4\": 'A',\n \"\\u1EAA\": 'A',\n \"\\u1EA8\": 'A',\n \"\\xC3\": 'A',\n \"\\u0100\": 'A',\n \"\\u0102\": 'A',\n \"\\u1EB0\": 'A',\n \"\\u1EAE\": 'A',\n \"\\u1EB4\": 'A',\n \"\\u1EB2\": 'A',\n \"\\u0226\": 'A',\n \"\\u01E0\": 'A',\n \"\\xC4\": 'A',\n \"\\u01DE\": 'A',\n \"\\u1EA2\": 'A',\n \"\\xC5\": 'A',\n \"\\u01FA\": 'A',\n \"\\u01CD\": 'A',\n \"\\u0200\": 'A',\n \"\\u0202\": 'A',\n \"\\u1EA0\": 'A',\n \"\\u1EAC\": 'A',\n \"\\u1EB6\": 'A',\n \"\\u1E00\": 'A',\n \"\\u0104\": 'A',\n \"\\u023A\": 'A',\n \"\\u2C6F\": 'A',\n \"\\uA732\": 'AA',\n \"\\xC6\": 'AE',\n \"\\u01FC\": 'AE',\n \"\\u01E2\": 'AE',\n \"\\uA734\": 'AO',\n \"\\uA736\": 'AU',\n \"\\uA738\": 'AV',\n \"\\uA73A\": 'AV',\n \"\\uA73C\": 'AY',\n \"\\u24B7\": 'B',\n \"\\uFF22\": 'B',\n \"\\u1E02\": 'B',\n \"\\u1E04\": 'B',\n \"\\u1E06\": 'B',\n \"\\u0243\": 'B',\n \"\\u0182\": 'B',\n \"\\u0181\": 'B',\n \"\\u24B8\": 'C',\n \"\\uFF23\": 'C',\n \"\\u0106\": 'C',\n \"\\u0108\": 'C',\n \"\\u010A\": 'C',\n \"\\u010C\": 'C',\n \"\\xC7\": 'C',\n \"\\u1E08\": 'C',\n \"\\u0187\": 'C',\n \"\\u023B\": 'C',\n \"\\uA73E\": 'C',\n \"\\u24B9\": 'D',\n \"\\uFF24\": 'D',\n \"\\u1E0A\": 'D',\n \"\\u010E\": 'D',\n \"\\u1E0C\": 'D',\n \"\\u1E10\": 'D',\n \"\\u1E12\": 'D',\n \"\\u1E0E\": 'D',\n \"\\u0110\": 'D',\n \"\\u018B\": 'D',\n \"\\u018A\": 'D',\n \"\\u0189\": 'D',\n \"\\uA779\": 'D',\n \"\\u01F1\": 'DZ',\n \"\\u01C4\": 'DZ',\n \"\\u01F2\": 'Dz',\n \"\\u01C5\": 'Dz',\n \"\\u24BA\": 'E',\n \"\\uFF25\": 'E',\n \"\\xC8\": 'E',\n \"\\xC9\": 'E',\n \"\\xCA\": 'E',\n \"\\u1EC0\": 'E',\n \"\\u1EBE\": 'E',\n \"\\u1EC4\": 'E',\n \"\\u1EC2\": 'E',\n \"\\u1EBC\": 'E',\n \"\\u0112\": 'E',\n \"\\u1E14\": 'E',\n \"\\u1E16\": 'E',\n \"\\u0114\": 'E',\n \"\\u0116\": 'E',\n \"\\xCB\": 'E',\n \"\\u1EBA\": 'E',\n \"\\u011A\": 'E',\n \"\\u0204\": 'E',\n \"\\u0206\": 'E',\n \"\\u1EB8\": 'E',\n \"\\u1EC6\": 'E',\n \"\\u0228\": 'E',\n \"\\u1E1C\": 'E',\n \"\\u0118\": 'E',\n \"\\u1E18\": 'E',\n \"\\u1E1A\": 'E',\n \"\\u0190\": 'E',\n \"\\u018E\": 'E',\n \"\\u24BB\": 'F',\n \"\\uFF26\": 'F',\n \"\\u1E1E\": 'F',\n \"\\u0191\": 'F',\n \"\\uA77B\": 'F',\n \"\\u24BC\": 'G',\n \"\\uFF27\": 'G',\n \"\\u01F4\": 'G',\n \"\\u011C\": 'G',\n \"\\u1E20\": 'G',\n \"\\u011E\": 'G',\n \"\\u0120\": 'G',\n \"\\u01E6\": 'G',\n \"\\u0122\": 'G',\n \"\\u01E4\": 'G',\n \"\\u0193\": 'G',\n \"\\uA7A0\": 'G',\n \"\\uA77D\": 'G',\n \"\\uA77E\": 'G',\n \"\\u24BD\": 'H',\n \"\\uFF28\": 'H',\n \"\\u0124\": 'H',\n \"\\u1E22\": 'H',\n \"\\u1E26\": 'H',\n \"\\u021E\": 'H',\n \"\\u1E24\": 'H',\n \"\\u1E28\": 'H',\n \"\\u1E2A\": 'H',\n \"\\u0126\": 'H',\n \"\\u2C67\": 'H',\n \"\\u2C75\": 'H',\n \"\\uA78D\": 'H',\n \"\\u24BE\": 'I',\n \"\\uFF29\": 'I',\n \"\\xCC\": 'I',\n \"\\xCD\": 'I',\n \"\\xCE\": 'I',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u0130\": 'I',\n \"\\xCF\": 'I',\n \"\\u1E2E\": 'I',\n \"\\u1EC8\": 'I',\n \"\\u01CF\": 'I',\n \"\\u0208\": 'I',\n \"\\u020A\": 'I',\n \"\\u1ECA\": 'I',\n \"\\u012E\": 'I',\n \"\\u1E2C\": 'I',\n \"\\u0197\": 'I',\n \"\\u24BF\": 'J',\n \"\\uFF2A\": 'J',\n \"\\u0134\": 'J',\n \"\\u0248\": 'J',\n \"\\u24C0\": 'K',\n \"\\uFF2B\": 'K',\n \"\\u1E30\": 'K',\n \"\\u01E8\": 'K',\n \"\\u1E32\": 'K',\n \"\\u0136\": 'K',\n \"\\u1E34\": 'K',\n \"\\u0198\": 'K',\n \"\\u2C69\": 'K',\n \"\\uA740\": 'K',\n \"\\uA742\": 'K',\n \"\\uA744\": 'K',\n \"\\uA7A2\": 'K',\n \"\\u24C1\": 'L',\n \"\\uFF2C\": 'L',\n \"\\u013F\": 'L',\n \"\\u0139\": 'L',\n \"\\u013D\": 'L',\n \"\\u1E36\": 'L',\n \"\\u1E38\": 'L',\n \"\\u013B\": 'L',\n \"\\u1E3C\": 'L',\n \"\\u1E3A\": 'L',\n \"\\u0141\": 'L',\n \"\\u023D\": 'L',\n \"\\u2C62\": 'L',\n \"\\u2C60\": 'L',\n \"\\uA748\": 'L',\n \"\\uA746\": 'L',\n \"\\uA780\": 'L',\n \"\\u01C7\": 'LJ',\n \"\\u01C8\": 'Lj',\n \"\\u24C2\": 'M',\n \"\\uFF2D\": 'M',\n \"\\u1E3E\": 'M',\n \"\\u1E40\": 'M',\n \"\\u1E42\": 'M',\n \"\\u2C6E\": 'M',\n \"\\u019C\": 'M',\n \"\\u24C3\": 'N',\n \"\\uFF2E\": 'N',\n \"\\u01F8\": 'N',\n \"\\u0143\": 'N',\n \"\\xD1\": 'N',\n \"\\u1E44\": 'N',\n \"\\u0147\": 'N',\n \"\\u1E46\": 'N',\n \"\\u0145\": 'N',\n \"\\u1E4A\": 'N',\n \"\\u1E48\": 'N',\n \"\\u0220\": 'N',\n \"\\u019D\": 'N',\n \"\\uA790\": 'N',\n \"\\uA7A4\": 'N',\n \"\\u01CA\": 'NJ',\n \"\\u01CB\": 'Nj',\n \"\\u24C4\": 'O',\n \"\\uFF2F\": 'O',\n \"\\xD2\": 'O',\n \"\\xD3\": 'O',\n \"\\xD4\": 'O',\n \"\\u1ED2\": 'O',\n \"\\u1ED0\": 'O',\n \"\\u1ED6\": 'O',\n \"\\u1ED4\": 'O',\n \"\\xD5\": 'O',\n \"\\u1E4C\": 'O',\n \"\\u022C\": 'O',\n \"\\u1E4E\": 'O',\n \"\\u014C\": 'O',\n \"\\u1E50\": 'O',\n \"\\u1E52\": 'O',\n \"\\u014E\": 'O',\n \"\\u022E\": 'O',\n \"\\u0230\": 'O',\n \"\\xD6\": 'O',\n \"\\u022A\": 'O',\n \"\\u1ECE\": 'O',\n \"\\u0150\": 'O',\n \"\\u01D1\": 'O',\n \"\\u020C\": 'O',\n \"\\u020E\": 'O',\n \"\\u01A0\": 'O',\n \"\\u1EDC\": 'O',\n \"\\u1EDA\": 'O',\n \"\\u1EE0\": 'O',\n \"\\u1EDE\": 'O',\n \"\\u1EE2\": 'O',\n \"\\u1ECC\": 'O',\n \"\\u1ED8\": 'O',\n \"\\u01EA\": 'O',\n \"\\u01EC\": 'O',\n \"\\xD8\": 'O',\n \"\\u01FE\": 'O',\n \"\\u0186\": 'O',\n \"\\u019F\": 'O',\n \"\\uA74A\": 'O',\n \"\\uA74C\": 'O',\n \"\\u0152\": 'OE',\n \"\\u01A2\": 'OI',\n \"\\uA74E\": 'OO',\n \"\\u0222\": 'OU',\n \"\\u24C5\": 'P',\n \"\\uFF30\": 'P',\n \"\\u1E54\": 'P',\n \"\\u1E56\": 'P',\n \"\\u01A4\": 'P',\n \"\\u2C63\": 'P',\n \"\\uA750\": 'P',\n \"\\uA752\": 'P',\n \"\\uA754\": 'P',\n \"\\u24C6\": 'Q',\n \"\\uFF31\": 'Q',\n \"\\uA756\": 'Q',\n \"\\uA758\": 'Q',\n \"\\u024A\": 'Q',\n \"\\u24C7\": 'R',\n \"\\uFF32\": 'R',\n \"\\u0154\": 'R',\n \"\\u1E58\": 'R',\n \"\\u0158\": 'R',\n \"\\u0210\": 'R',\n \"\\u0212\": 'R',\n \"\\u1E5A\": 'R',\n \"\\u1E5C\": 'R',\n \"\\u0156\": 'R',\n \"\\u1E5E\": 'R',\n \"\\u024C\": 'R',\n \"\\u2C64\": 'R',\n \"\\uA75A\": 'R',\n \"\\uA7A6\": 'R',\n \"\\uA782\": 'R',\n \"\\u24C8\": 'S',\n \"\\uFF33\": 'S',\n \"\\u1E9E\": 'S',\n \"\\u015A\": 'S',\n \"\\u1E64\": 'S',\n \"\\u015C\": 'S',\n \"\\u1E60\": 'S',\n \"\\u0160\": 'S',\n \"\\u1E66\": 'S',\n \"\\u1E62\": 'S',\n \"\\u1E68\": 'S',\n \"\\u0218\": 'S',\n \"\\u015E\": 'S',\n \"\\u2C7E\": 'S',\n \"\\uA7A8\": 'S',\n \"\\uA784\": 'S',\n \"\\u24C9\": 'T',\n \"\\uFF34\": 'T',\n \"\\u1E6A\": 'T',\n \"\\u0164\": 'T',\n \"\\u1E6C\": 'T',\n \"\\u021A\": 'T',\n \"\\u0162\": 'T',\n \"\\u1E70\": 'T',\n \"\\u1E6E\": 'T',\n \"\\u0166\": 'T',\n \"\\u01AC\": 'T',\n \"\\u01AE\": 'T',\n \"\\u023E\": 'T',\n \"\\uA786\": 'T',\n \"\\uA728\": 'TZ',\n \"\\u24CA\": 'U',\n \"\\uFF35\": 'U',\n \"\\xD9\": 'U',\n \"\\xDA\": 'U',\n \"\\xDB\": 'U',\n \"\\u0168\": 'U',\n \"\\u1E78\": 'U',\n \"\\u016A\": 'U',\n \"\\u1E7A\": 'U',\n \"\\u016C\": 'U',\n \"\\xDC\": 'U',\n \"\\u01DB\": 'U',\n \"\\u01D7\": 'U',\n \"\\u01D5\": 'U',\n \"\\u01D9\": 'U',\n \"\\u1EE6\": 'U',\n \"\\u016E\": 'U',\n \"\\u0170\": 'U',\n \"\\u01D3\": 'U',\n \"\\u0214\": 'U',\n \"\\u0216\": 'U',\n \"\\u01AF\": 'U',\n \"\\u1EEA\": 'U',\n \"\\u1EE8\": 'U',\n \"\\u1EEE\": 'U',\n \"\\u1EEC\": 'U',\n \"\\u1EF0\": 'U',\n \"\\u1EE4\": 'U',\n \"\\u1E72\": 'U',\n \"\\u0172\": 'U',\n \"\\u1E76\": 'U',\n \"\\u1E74\": 'U',\n \"\\u0244\": 'U',\n \"\\u24CB\": 'V',\n \"\\uFF36\": 'V',\n \"\\u1E7C\": 'V',\n \"\\u1E7E\": 'V',\n \"\\u01B2\": 'V',\n \"\\uA75E\": 'V',\n \"\\u0245\": 'V',\n \"\\uA760\": 'VY',\n \"\\u24CC\": 'W',\n \"\\uFF37\": 'W',\n \"\\u1E80\": 'W',\n \"\\u1E82\": 'W',\n \"\\u0174\": 'W',\n \"\\u1E86\": 'W',\n \"\\u1E84\": 'W',\n \"\\u1E88\": 'W',\n \"\\u2C72\": 'W',\n \"\\u24CD\": 'X',\n \"\\uFF38\": 'X',\n \"\\u1E8A\": 'X',\n \"\\u1E8C\": 'X',\n \"\\u24CE\": 'Y',\n \"\\uFF39\": 'Y',\n \"\\u1EF2\": 'Y',\n \"\\xDD\": 'Y',\n \"\\u0176\": 'Y',\n \"\\u1EF8\": 'Y',\n \"\\u0232\": 'Y',\n \"\\u1E8E\": 'Y',\n \"\\u0178\": 'Y',\n \"\\u1EF6\": 'Y',\n \"\\u1EF4\": 'Y',\n \"\\u01B3\": 'Y',\n \"\\u024E\": 'Y',\n \"\\u1EFE\": 'Y',\n \"\\u24CF\": 'Z',\n \"\\uFF3A\": 'Z',\n \"\\u0179\": 'Z',\n \"\\u1E90\": 'Z',\n \"\\u017B\": 'Z',\n \"\\u017D\": 'Z',\n \"\\u1E92\": 'Z',\n \"\\u1E94\": 'Z',\n \"\\u01B5\": 'Z',\n \"\\u0224\": 'Z',\n \"\\u2C7F\": 'Z',\n \"\\u2C6B\": 'Z',\n \"\\uA762\": 'Z',\n \"\\u24D0\": 'a',\n \"\\uFF41\": 'a',\n \"\\u1E9A\": 'a',\n \"\\xE0\": 'a',\n \"\\xE1\": 'a',\n \"\\xE2\": 'a',\n \"\\u1EA7\": 'a',\n \"\\u1EA5\": 'a',\n \"\\u1EAB\": 'a',\n \"\\u1EA9\": 'a',\n \"\\xE3\": 'a',\n \"\\u0101\": 'a',\n \"\\u0103\": 'a',\n \"\\u1EB1\": 'a',\n \"\\u1EAF\": 'a',\n \"\\u1EB5\": 'a',\n \"\\u1EB3\": 'a',\n \"\\u0227\": 'a',\n \"\\u01E1\": 'a',\n \"\\xE4\": 'a',\n \"\\u01DF\": 'a',\n \"\\u1EA3\": 'a',\n \"\\xE5\": 'a',\n \"\\u01FB\": 'a',\n \"\\u01CE\": 'a',\n \"\\u0201\": 'a',\n \"\\u0203\": 'a',\n \"\\u1EA1\": 'a',\n \"\\u1EAD\": 'a',\n \"\\u1EB7\": 'a',\n \"\\u1E01\": 'a',\n \"\\u0105\": 'a',\n \"\\u2C65\": 'a',\n \"\\u0250\": 'a',\n \"\\uA733\": 'aa',\n \"\\xE6\": 'ae',\n \"\\u01FD\": 'ae',\n \"\\u01E3\": 'ae',\n \"\\uA735\": 'ao',\n \"\\uA737\": 'au',\n \"\\uA739\": 'av',\n \"\\uA73B\": 'av',\n \"\\uA73D\": 'ay',\n \"\\u24D1\": 'b',\n \"\\uFF42\": 'b',\n \"\\u1E03\": 'b',\n \"\\u1E05\": 'b',\n \"\\u1E07\": 'b',\n \"\\u0180\": 'b',\n \"\\u0183\": 'b',\n \"\\u0253\": 'b',\n \"\\u24D2\": 'c',\n \"\\uFF43\": 'c',\n \"\\u0107\": 'c',\n \"\\u0109\": 'c',\n \"\\u010B\": 'c',\n \"\\u010D\": 'c',\n \"\\xE7\": 'c',\n \"\\u1E09\": 'c',\n \"\\u0188\": 'c',\n \"\\u023C\": 'c',\n \"\\uA73F\": 'c',\n \"\\u2184\": 'c',\n \"\\u24D3\": 'd',\n \"\\uFF44\": 'd',\n \"\\u1E0B\": 'd',\n \"\\u010F\": 'd',\n \"\\u1E0D\": 'd',\n \"\\u1E11\": 'd',\n \"\\u1E13\": 'd',\n \"\\u1E0F\": 'd',\n \"\\u0111\": 'd',\n \"\\u018C\": 'd',\n \"\\u0256\": 'd',\n \"\\u0257\": 'd',\n \"\\uA77A\": 'd',\n \"\\u01F3\": 'dz',\n \"\\u01C6\": 'dz',\n \"\\u24D4\": 'e',\n \"\\uFF45\": 'e',\n \"\\xE8\": 'e',\n \"\\xE9\": 'e',\n \"\\xEA\": 'e',\n \"\\u1EC1\": 'e',\n \"\\u1EBF\": 'e',\n \"\\u1EC5\": 'e',\n \"\\u1EC3\": 'e',\n \"\\u1EBD\": 'e',\n \"\\u0113\": 'e',\n \"\\u1E15\": 'e',\n \"\\u1E17\": 'e',\n \"\\u0115\": 'e',\n \"\\u0117\": 'e',\n \"\\xEB\": 'e',\n \"\\u1EBB\": 'e',\n \"\\u011B\": 'e',\n \"\\u0205\": 'e',\n \"\\u0207\": 'e',\n \"\\u1EB9\": 'e',\n \"\\u1EC7\": 'e',\n \"\\u0229\": 'e',\n \"\\u1E1D\": 'e',\n \"\\u0119\": 'e',\n \"\\u1E19\": 'e',\n \"\\u1E1B\": 'e',\n \"\\u0247\": 'e',\n \"\\u025B\": 'e',\n \"\\u01DD\": 'e',\n \"\\u24D5\": 'f',\n \"\\uFF46\": 'f',\n \"\\u1E1F\": 'f',\n \"\\u0192\": 'f',\n \"\\uA77C\": 'f',\n \"\\u24D6\": 'g',\n \"\\uFF47\": 'g',\n \"\\u01F5\": 'g',\n \"\\u011D\": 'g',\n \"\\u1E21\": 'g',\n \"\\u011F\": 'g',\n \"\\u0121\": 'g',\n \"\\u01E7\": 'g',\n \"\\u0123\": 'g',\n \"\\u01E5\": 'g',\n \"\\u0260\": 'g',\n \"\\uA7A1\": 'g',\n \"\\u1D79\": 'g',\n \"\\uA77F\": 'g',\n \"\\u24D7\": 'h',\n \"\\uFF48\": 'h',\n \"\\u0125\": 'h',\n \"\\u1E23\": 'h',\n \"\\u1E27\": 'h',\n \"\\u021F\": 'h',\n \"\\u1E25\": 'h',\n \"\\u1E29\": 'h',\n \"\\u1E2B\": 'h',\n \"\\u1E96\": 'h',\n \"\\u0127\": 'h',\n \"\\u2C68\": 'h',\n \"\\u2C76\": 'h',\n \"\\u0265\": 'h',\n \"\\u0195\": 'hv',\n \"\\u24D8\": 'i',\n \"\\uFF49\": 'i',\n \"\\xEC\": 'i',\n \"\\xED\": 'i',\n \"\\xEE\": 'i',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\xEF\": 'i',\n \"\\u1E2F\": 'i',\n \"\\u1EC9\": 'i',\n \"\\u01D0\": 'i',\n \"\\u0209\": 'i',\n \"\\u020B\": 'i',\n \"\\u1ECB\": 'i',\n \"\\u012F\": 'i',\n \"\\u1E2D\": 'i',\n \"\\u0268\": 'i',\n \"\\u0131\": 'i',\n \"\\u24D9\": 'j',\n \"\\uFF4A\": 'j',\n \"\\u0135\": 'j',\n \"\\u01F0\": 'j',\n \"\\u0249\": 'j',\n \"\\u24DA\": 'k',\n \"\\uFF4B\": 'k',\n \"\\u1E31\": 'k',\n \"\\u01E9\": 'k',\n \"\\u1E33\": 'k',\n \"\\u0137\": 'k',\n \"\\u1E35\": 'k',\n \"\\u0199\": 'k',\n \"\\u2C6A\": 'k',\n \"\\uA741\": 'k',\n \"\\uA743\": 'k',\n \"\\uA745\": 'k',\n \"\\uA7A3\": 'k',\n \"\\u24DB\": 'l',\n \"\\uFF4C\": 'l',\n \"\\u0140\": 'l',\n \"\\u013A\": 'l',\n \"\\u013E\": 'l',\n \"\\u1E37\": 'l',\n \"\\u1E39\": 'l',\n \"\\u013C\": 'l',\n \"\\u1E3D\": 'l',\n \"\\u1E3B\": 'l',\n \"\\u017F\": 'l',\n \"\\u0142\": 'l',\n \"\\u019A\": 'l',\n \"\\u026B\": 'l',\n \"\\u2C61\": 'l',\n \"\\uA749\": 'l',\n \"\\uA781\": 'l',\n \"\\uA747\": 'l',\n \"\\u01C9\": 'lj',\n \"\\u24DC\": 'm',\n \"\\uFF4D\": 'm',\n \"\\u1E3F\": 'm',\n \"\\u1E41\": 'm',\n \"\\u1E43\": 'm',\n \"\\u0271\": 'm',\n \"\\u026F\": 'm',\n \"\\u24DD\": 'n',\n \"\\uFF4E\": 'n',\n \"\\u01F9\": 'n',\n \"\\u0144\": 'n',\n \"\\xF1\": 'n',\n \"\\u1E45\": 'n',\n \"\\u0148\": 'n',\n \"\\u1E47\": 'n',\n \"\\u0146\": 'n',\n \"\\u1E4B\": 'n',\n \"\\u1E49\": 'n',\n \"\\u019E\": 'n',\n \"\\u0272\": 'n',\n \"\\u0149\": 'n',\n \"\\uA791\": 'n',\n \"\\uA7A5\": 'n',\n \"\\u01CC\": 'nj',\n \"\\u24DE\": 'o',\n \"\\uFF4F\": 'o',\n \"\\xF2\": 'o',\n \"\\xF3\": 'o',\n \"\\xF4\": 'o',\n \"\\u1ED3\": 'o',\n \"\\u1ED1\": 'o',\n \"\\u1ED7\": 'o',\n \"\\u1ED5\": 'o',\n \"\\xF5\": 'o',\n \"\\u1E4D\": 'o',\n \"\\u022D\": 'o',\n \"\\u1E4F\": 'o',\n \"\\u014D\": 'o',\n \"\\u1E51\": 'o',\n \"\\u1E53\": 'o',\n \"\\u014F\": 'o',\n \"\\u022F\": 'o',\n \"\\u0231\": 'o',\n \"\\xF6\": 'o',\n \"\\u022B\": 'o',\n \"\\u1ECF\": 'o',\n \"\\u0151\": 'o',\n \"\\u01D2\": 'o',\n \"\\u020D\": 'o',\n \"\\u020F\": 'o',\n \"\\u01A1\": 'o',\n \"\\u1EDD\": 'o',\n \"\\u1EDB\": 'o',\n \"\\u1EE1\": 'o',\n \"\\u1EDF\": 'o',\n \"\\u1EE3\": 'o',\n \"\\u1ECD\": 'o',\n \"\\u1ED9\": 'o',\n \"\\u01EB\": 'o',\n \"\\u01ED\": 'o',\n \"\\xF8\": 'o',\n \"\\u01FF\": 'o',\n \"\\u0254\": 'o',\n \"\\uA74B\": 'o',\n \"\\uA74D\": 'o',\n \"\\u0275\": 'o',\n \"\\u0153\": 'oe',\n \"\\u01A3\": 'oi',\n \"\\u0223\": 'ou',\n \"\\uA74F\": 'oo',\n \"\\u24DF\": 'p',\n \"\\uFF50\": 'p',\n \"\\u1E55\": 'p',\n \"\\u1E57\": 'p',\n \"\\u01A5\": 'p',\n \"\\u1D7D\": 'p',\n \"\\uA751\": 'p',\n \"\\uA753\": 'p',\n \"\\uA755\": 'p',\n \"\\u24E0\": 'q',\n \"\\uFF51\": 'q',\n \"\\u024B\": 'q',\n \"\\uA757\": 'q',\n \"\\uA759\": 'q',\n \"\\u24E1\": 'r',\n \"\\uFF52\": 'r',\n \"\\u0155\": 'r',\n \"\\u1E59\": 'r',\n \"\\u0159\": 'r',\n \"\\u0211\": 'r',\n \"\\u0213\": 'r',\n \"\\u1E5B\": 'r',\n \"\\u1E5D\": 'r',\n \"\\u0157\": 'r',\n \"\\u1E5F\": 'r',\n \"\\u024D\": 'r',\n \"\\u027D\": 'r',\n \"\\uA75B\": 'r',\n \"\\uA7A7\": 'r',\n \"\\uA783\": 'r',\n \"\\u24E2\": 's',\n \"\\uFF53\": 's',\n \"\\xDF\": 's',\n \"\\u015B\": 's',\n \"\\u1E65\": 's',\n \"\\u015D\": 's',\n \"\\u1E61\": 's',\n \"\\u0161\": 's',\n \"\\u1E67\": 's',\n \"\\u1E63\": 's',\n \"\\u1E69\": 's',\n \"\\u0219\": 's',\n \"\\u015F\": 's',\n \"\\u023F\": 's',\n \"\\uA7A9\": 's',\n \"\\uA785\": 's',\n \"\\u1E9B\": 's',\n \"\\u24E3\": 't',\n \"\\uFF54\": 't',\n \"\\u1E6B\": 't',\n \"\\u1E97\": 't',\n \"\\u0165\": 't',\n \"\\u1E6D\": 't',\n \"\\u021B\": 't',\n \"\\u0163\": 't',\n \"\\u1E71\": 't',\n \"\\u1E6F\": 't',\n \"\\u0167\": 't',\n \"\\u01AD\": 't',\n \"\\u0288\": 't',\n \"\\u2C66\": 't',\n \"\\uA787\": 't',\n \"\\uA729\": 'tz',\n \"\\u24E4\": 'u',\n \"\\uFF55\": 'u',\n \"\\xF9\": 'u',\n \"\\xFA\": 'u',\n \"\\xFB\": 'u',\n \"\\u0169\": 'u',\n \"\\u1E79\": 'u',\n \"\\u016B\": 'u',\n \"\\u1E7B\": 'u',\n \"\\u016D\": 'u',\n \"\\xFC\": 'u',\n \"\\u01DC\": 'u',\n \"\\u01D8\": 'u',\n \"\\u01D6\": 'u',\n \"\\u01DA\": 'u',\n \"\\u1EE7\": 'u',\n \"\\u016F\": 'u',\n \"\\u0171\": 'u',\n \"\\u01D4\": 'u',\n \"\\u0215\": 'u',\n \"\\u0217\": 'u',\n \"\\u01B0\": 'u',\n \"\\u1EEB\": 'u',\n \"\\u1EE9\": 'u',\n \"\\u1EEF\": 'u',\n \"\\u1EED\": 'u',\n \"\\u1EF1\": 'u',\n \"\\u1EE5\": 'u',\n \"\\u1E73\": 'u',\n \"\\u0173\": 'u',\n \"\\u1E77\": 'u',\n \"\\u1E75\": 'u',\n \"\\u0289\": 'u',\n \"\\u24E5\": 'v',\n \"\\uFF56\": 'v',\n \"\\u1E7D\": 'v',\n \"\\u1E7F\": 'v',\n \"\\u028B\": 'v',\n \"\\uA75F\": 'v',\n \"\\u028C\": 'v',\n \"\\uA761\": 'vy',\n \"\\u24E6\": 'w',\n \"\\uFF57\": 'w',\n \"\\u1E81\": 'w',\n \"\\u1E83\": 'w',\n \"\\u0175\": 'w',\n \"\\u1E87\": 'w',\n \"\\u1E85\": 'w',\n \"\\u1E98\": 'w',\n \"\\u1E89\": 'w',\n \"\\u2C73\": 'w',\n \"\\u24E7\": 'x',\n \"\\uFF58\": 'x',\n \"\\u1E8B\": 'x',\n \"\\u1E8D\": 'x',\n \"\\u24E8\": 'y',\n \"\\uFF59\": 'y',\n \"\\u1EF3\": 'y',\n \"\\xFD\": 'y',\n \"\\u0177\": 'y',\n \"\\u1EF9\": 'y',\n \"\\u0233\": 'y',\n \"\\u1E8F\": 'y',\n \"\\xFF\": 'y',\n \"\\u1EF7\": 'y',\n \"\\u1E99\": 'y',\n \"\\u1EF5\": 'y',\n \"\\u01B4\": 'y',\n \"\\u024F\": 'y',\n \"\\u1EFF\": 'y',\n \"\\u24E9\": 'z',\n \"\\uFF5A\": 'z',\n \"\\u017A\": 'z',\n \"\\u1E91\": 'z',\n \"\\u017C\": 'z',\n \"\\u017E\": 'z',\n \"\\u1E93\": 'z',\n \"\\u1E95\": 'z',\n \"\\u01B6\": 'z',\n \"\\u0225\": 'z',\n \"\\u0240\": 'z',\n \"\\u2C6C\": 'z',\n \"\\uA763\": 'z',\n \"\\u0386\": \"\\u0391\",\n \"\\u0388\": \"\\u0395\",\n \"\\u0389\": \"\\u0397\",\n \"\\u038A\": \"\\u0399\",\n \"\\u03AA\": \"\\u0399\",\n \"\\u038C\": \"\\u039F\",\n \"\\u038E\": \"\\u03A5\",\n \"\\u03AB\": \"\\u03A5\",\n \"\\u038F\": \"\\u03A9\",\n \"\\u03AC\": \"\\u03B1\",\n \"\\u03AD\": \"\\u03B5\",\n \"\\u03AE\": \"\\u03B7\",\n \"\\u03AF\": \"\\u03B9\",\n \"\\u03CA\": \"\\u03B9\",\n \"\\u0390\": \"\\u03B9\",\n \"\\u03CC\": \"\\u03BF\",\n \"\\u03CD\": \"\\u03C5\",\n \"\\u03CB\": \"\\u03C5\",\n \"\\u03B0\": \"\\u03C5\",\n \"\\u03CE\": \"\\u03C9\",\n \"\\u03C2\": \"\\u03C3\",\n \"\\u2019\": '\\''\n };\n return diacritics;\n });\n S2.define('select2/data/base', ['../utils'], function (Utils) {\n function BaseAdapter($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {// Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {// Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n\n return id;\n };\n\n return BaseAdapter;\n });\n S2.define('select2/data/select', ['./base', '../utils', 'jquery'], function (BaseAdapter, Utils, $) {\n function SelectAdapter($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var self = this;\n var data = Array.prototype.map.call(this.$element[0].querySelectorAll(':checked'), function (selectedElement) {\n return self.item($(selectedElement));\n });\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n data.selected = true; // If data.element is a DOM node, use it instead\n\n if (data.element != null && data.element.tagName.toLowerCase() === 'option') {\n data.element.selected = true;\n this.$element.trigger('input').trigger('change');\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if (val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if (data.element != null && data.element.tagName.toLowerCase() === 'option') {\n data.element.selected = false;\n this.$element.trigger('input').trigger('change');\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n this.container = container;\n container.on('select', function (params) {\n self.select(params.data);\n });\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n var $options = this.$element.children();\n $options.each(function () {\n if (this.tagName.toLowerCase() !== 'option' && this.tagName.toLowerCase() !== 'optgroup') {\n return;\n }\n\n var $option = $(this);\n var option = self.item($option);\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n this.$element.append($options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var normalizedData = this._normalizeItem(data);\n\n normalizedData.element = option; // Override the option's data with the combined data\n\n Utils.StoreData(option, 'data', normalizedData);\n return $(option);\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n var option = $option[0];\n\n if (option.tagName.toLowerCase() === 'option') {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if (option.tagName.toLowerCase() === 'optgroup') {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n var child = this.item($child);\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n Utils.StoreData($option[0], 'data', data);\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n return matcher(params, data);\n };\n\n return SelectAdapter;\n });\n S2.define('select2/data/array', ['./select', '../utils', 'jquery'], function (SelectAdapter, Utils, $) {\n function ArrayAdapter($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n var $options = []; // Filter out all items except for the one passed in the argument\n\n function onlyItem(item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data\n\n\n if (existingIds.indexOf(item.id) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n var $newOption = this.option(newData);\n $existingOption.replaceWith($newOption);\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n $option.append($children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n });\n S2.define('select2/data/ajax', ['./array', '../utils', 'jquery'], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function data(params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function transport(params, success, failure) {\n var $request = $.ajax(params);\n $request.then(success);\n $request.fail(failure);\n return $request;\n }\n };\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if (typeof this._request.abort === 'function') {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request() {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !Array.isArray(results.results)) {\n console.error('Select2: The AJAX results did not return an array in the ' + '`results` key of the response.');\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request && ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n });\n S2.define('select2/data/tags', ['jquery'], function ($) {\n function Tags(decorated, $element, options) {\n var tags = options.get('tags');\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if (Array.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper(obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n var checkChildren = option.children != null && !wrapper({\n results: option.children\n }, true);\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', 'true');\n self.addOptions([$option]);\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n if (params.term == null) {\n return null;\n }\n\n var term = params.term.trim();\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n });\n S2.define('select2/data/tokenizer', ['jquery'], function ($) {\n function Tokenizer(decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect(data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data); // Check if the data object already exists as a tag\n // Select it if it doesn't\n\n\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n }); // If an existing option wasn't found for it, create the option\n\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n\n self.addOptions([$option]);\n } // Select the item, now that we know there is an option for it\n\n\n select(item);\n }\n\n function select(data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if (separators.indexOf(termChar) === -1) {\n i++;\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data); // Reset the term to not include the tokenized portion\n\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n });\n S2.define('select2/data/minimumInputLength', [], function () {\n function MinimumInputLength(decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n });\n S2.define('select2/data/maximumInputLength', [], function () {\n function MaximumInputLength(decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n });\n S2.define('select2/data/maximumSelectionLength', [], function () {\n function MaximumSelectionLength(decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected = function (_, successCallback) {\n var self = this;\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n\n if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n });\n S2.define('select2/dropdown', ['jquery', './utils'], function ($, Utils) {\n function Dropdown($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $('' + '' + '');\n $dropdown.attr('dir', this.options.get('dir'));\n this.$dropdown = $dropdown;\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {// Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {// Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n });\n S2.define('select2/dropdown/search', ['jquery'], function ($) {\n function Search() {}\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var searchLabel = this.options.get('translations').get('search');\n var $search = $('' + '' + '');\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n $rendered.prepend($search);\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n decorated.call(this, container, $container);\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n self._keyUpPrevented = evt.isDefaultPrevented();\n }); // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.val('');\n self.$search.trigger('blur');\n });\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer[0].classList.remove('select2-search--hide');\n } else {\n self.$searchContainer[0].classList.add('select2-search--hide');\n }\n }\n });\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n });\n S2.define('select2/dropdown/hidePlaceholder', [], function () {\n function HidePlaceholder(decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n });\n S2.define('select2/dropdown/infiniteScroll', ['jquery'], function ($) {\n function InfiniteScroll(decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n decorated.call(this, $element, options, dataAdapter);\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(document.documentElement, this.$loadingMore[0]);\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top + this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top + this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n var params = $.extend({}, {\n page: 1\n }, this.lastParams);\n params.page++;\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $('
  • ');\n var message = this.options.get('translations').get('loadingMore');\n $option.html(message(this.lastParams));\n return $option;\n };\n\n return InfiniteScroll;\n });\n S2.define('select2/dropdown/attachBody', ['jquery', '../utils'], function ($, Utils) {\n function AttachBody(decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('open', function () {\n self._showDropdown();\n\n self._attachPositioningHandler(container); // Must bind after the results handlers to ensure correct sizing\n\n\n self._bindContainerResultHandlers(container);\n });\n container.on('close', function () {\n self._hideDropdown();\n\n self._detachPositioningHandler(container);\n });\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n $dropdown[0].classList.remove('select2');\n $dropdown[0].classList.add('select2-container--open');\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n this.$dropdownContainer = $container;\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers = function (decorated, container) {\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n container.on('results:all', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('results:append', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('results:message', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('select', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('unselect', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler = function (decorated, container) {\n var self = this;\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler = function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n var isCurrentlyAbove = this.$dropdown[0].classList.contains('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown[0].classList.contains('select2-dropdown--below');\n var newDirection = null;\n var offset = this.$container.offset();\n offset.bottom = offset.top + this.$container.outerHeight(false);\n var container = {\n height: this.$container.outerHeight(false)\n };\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n var enoughRoomAbove = viewport.top < offset.top - dropdown.height;\n var enoughRoomBelow = viewport.bottom > offset.bottom + dropdown.height;\n var css = {\n left: offset.left,\n top: container.bottom\n }; // Determine what the parent element is to use for calculating the offset\n\n var $offsetParent = this.$dropdownParent; // For statically positioned elements, we need to get the element\n // that is determining the offset\n\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if ($.contains(document.body, $offsetParent[0]) || $offsetParent[0].isConnected) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' || isCurrentlyAbove && newDirection !== 'below') {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown[0].classList.remove('select2-dropdown--below');\n this.$dropdown[0].classList.remove('select2-dropdown--above');\n this.$dropdown[0].classList.add('select2-dropdown--' + newDirection);\n this.$container[0].classList.remove('select2-container--below');\n this.$container[0].classList.remove('select2-container--above');\n this.$container[0].classList.add('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n\n this._resizeDropdown();\n };\n\n return AttachBody;\n });\n S2.define('select2/dropdown/minimumResultsForSearch', [], function () {\n function countResults(data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch(decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n });\n S2.define('select2/dropdown/selectOnClose', ['../utils'], function (Utils) {\n function SelectOnClose() {}\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or\n // unselect event\n\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results\n\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data'); // Don't re-select already selected resulte\n\n if (data.element != null && data.element.selected || data.element == null && data.selected) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n });\n S2.define('select2/dropdown/closeOnSelect', [], function () {\n function CloseOnSelect() {}\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent; // Don't close if the control key is being held\n\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n });\n S2.define('select2/dropdown/dropdownCss', ['../utils'], function (Utils) {\n function DropdownCSS() {}\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n Utils.copyNonInternalCssClasses($dropdown[0], this.$element[0]);\n }\n\n $dropdown.addClass(dropdownCssClass);\n return $dropdown;\n };\n\n return DropdownCSS;\n });\n S2.define('select2/dropdown/tagsSearchHighlight', ['../utils'], function (Utils) {\n function TagsSearchHighlight() {}\n\n TagsSearchHighlight.prototype.highlightFirstItem = function (decorated) {\n var $options = this.$results.find('.select2-results__option--selectable' + ':not(.select2-results__option--selected)');\n\n if ($options.length > 0) {\n var $firstOption = $options.first();\n var data = Utils.GetData($firstOption[0], 'data');\n var firstElement = data.element;\n\n if (firstElement && firstElement.getAttribute) {\n if (firstElement.getAttribute('data-select2-tag') === 'true') {\n $firstOption.trigger('mouseenter');\n return;\n }\n }\n }\n\n decorated.call(this);\n };\n\n return TagsSearchHighlight;\n });\n S2.define('select2/i18n/en', [], function () {\n // English\n return {\n errorLoading: function errorLoading() {\n return 'The results could not be loaded.';\n },\n inputTooLong: function inputTooLong(args) {\n var overChars = args.input.length - args.maximum;\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function inputTooShort(args) {\n var remainingChars = args.minimum - args.input.length;\n var message = 'Please enter ' + remainingChars + ' or more characters';\n return message;\n },\n loadingMore: function loadingMore() {\n return 'Loading more results…';\n },\n maximumSelected: function maximumSelected(args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function noResults() {\n return 'No results found';\n },\n searching: function searching() {\n return 'Searching…';\n },\n removeAllItems: function removeAllItems() {\n return 'Remove all items';\n },\n removeItem: function removeItem() {\n return 'Remove item';\n },\n search: function search() {\n return 'Search';\n }\n };\n });\n S2.define('select2/defaults', ['jquery', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/selectionCss', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './dropdown/dropdownCss', './dropdown/tagsSearchHighlight', './i18n/en'], function ($, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, SelectionCSS, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, DropdownCSS, TagsSearchHighlight, EnglishTranslation) {\n function Defaults() {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MinimumInputLength);\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumInputLength);\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumSelectionLength);\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tokenizer);\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, InfiniteScroll);\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, HidePlaceholder);\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, SelectOnClose);\n }\n\n if (options.tags) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, TagsSearchHighlight);\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, MinimumResultsForSearch);\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, CloseOnSelect);\n }\n\n if (options.dropdownCssClass != null) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, DropdownCSS);\n }\n\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, AttachBody);\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n } // Add the placeholder mixin if a placeholder was specified\n\n\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, Placeholder);\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, AllowClear);\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, SelectionSearch);\n }\n\n if (options.selectionCssClass != null) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, SelectionCSS);\n }\n\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, EventRelay);\n } // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n\n\n options.language = this._resolveLanguage(options.language); // Always fall back to English since it will always be complete\n\n options.language.push('en');\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n options.translations = this._processTranslations(options.language, options.debug);\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics(text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher(params, data) {\n // Always return the object if there is nothing to compare\n if (params.term == null || params.term.trim() === '') {\n return data;\n } // Do a recursive check for options with children\n\n\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data); // Check each child of the option\n\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n var matches = matcher(params, child); // If there wasn't a match, remove the object in the array\n\n if (matches == null) {\n match.children.splice(c, 1);\n }\n } // If any children matched, return the new object\n\n\n if (match.children.length > 0) {\n return match;\n } // If there were no matching children, check just the plain object\n\n\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term\n\n if (original.indexOf(term) > -1) {\n return data;\n } // If it doesn't contain the term, don't return anything\n\n\n return null;\n }\n\n this.defaults = {\n amdLanguageBase: './i18n/',\n autocomplete: 'off',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function sorter(data) {\n return data;\n },\n templateResult: function templateResult(result) {\n return result.text;\n },\n templateSelection: function templateSelection(selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n var languages = Array.prototype.concat.call(this._resolveLanguage(elementLanguage), this._resolveLanguage(optionLanguage), this._resolveLanguage(defaultLanguage), this._resolveLanguage(parentLanguage));\n options.language = languages;\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!Array.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn('Select2: The language file for \"' + language + '\" could ' + 'not be automatically loaded. A fallback will be used instead.');\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n return defaults;\n });\n S2.define('select2/options', ['jquery', './defaults', './utils'], function ($, Defaults, Utils) {\n function Options(options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.autocomplete == null && $e.prop('autocomplete')) {\n this.options.autocomplete = $e.prop('autocomplete');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn('Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' + 'removed in future versions of Select2.');\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn('Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.');\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n } // Pre-load all of the attributes which are prefixed with `data-`\n\n\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length); // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n\n var dataValue = Utils.GetData($e[0], dataName); // camelCase the attribute name to match the spec\n\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter); // Store the data attribute contents into the dataset since\n\n dataset[camelDataName] = dataValue;\n }\n } // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n\n\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n } // Prefer our internal data cache if it exists\n\n\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n data = Utils._convertData(data);\n\n for (var key in data) {\n if (excludedData.indexOf(key) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n });\n S2.define('select2/core', ['jquery', './options', './utils', './keys'], function ($, Options, Utils, KEYS) {\n var Select2 = function Select2($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n this.id = this._generateId($element);\n options = options || {};\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this); // Set up the tabindex\n\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1'); // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n this.selection.position(this.$selection, $container);\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n this.dropdown.position(this.$dropdown, $container);\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n this.results.position(this.$results, this.$dropdown); // Bind events\n\n var self = this; // Bind the container to all of the adapters\n\n this._bindAdapters(); // Register any DOM event handlers\n\n\n this._registerDomEvents(); // Register any internal event handlers\n\n\n this._registerDataEvents();\n\n this._registerSelectionEvents();\n\n this._registerDropdownEvents();\n\n this._registerResultsEvents();\n\n this._registerEvents(); // Set the initial state\n\n\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n }); // Hide the original select\n\n $element[0].classList.add('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes\n\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this); // Ensure backwards compatibility with $element.data('select2').\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof style !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n this._observer = new window.MutationObserver(function (mutations) {\n self._syncA();\n\n self._syncS(mutations);\n });\n\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n this.selection.on('*', function (name, params) {\n if (nonRelayEvents.indexOf(name) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n this.on('open', function () {\n self.$container[0].classList.add('select2-container--open');\n });\n this.on('close', function () {\n self.$container[0].classList.remove('select2-container--open');\n });\n this.on('enable', function () {\n self.$container[0].classList.remove('select2-container--disabled');\n });\n this.on('disable', function () {\n self.$container[0].classList.add('select2-container--disabled');\n });\n this.on('blur', function () {\n self.$container[0].classList.remove('select2-container--focus');\n });\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || key === KEYS.UP && evt.altKey) {\n self.close(evt);\n evt.preventDefault();\n } else if (key === KEYS.ENTER || key === KEYS.TAB) {\n self.trigger('results:select', {});\n evt.preventDefault();\n } else if (key === KEYS.SPACE && evt.ctrlKey) {\n self.trigger('results:toggle', {});\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE || key === KEYS.DOWN && evt.altKey) {\n self.open();\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (mutations) {\n var self = this;\n\n if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n return true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n return true;\n } else if (Array.isArray(mutations)) {\n return mutations.some(function (mutation) {\n return self._isChangeMutation(mutation);\n });\n }\n\n return false;\n };\n\n Select2.prototype._syncSubtree = function (mutations) {\n var changed = this._isChangeMutation(mutations);\n\n var self = this; // Only re-pull the data if we think there is a change\n\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n\n\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: evt\n });\n };\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n\n\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n\n\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container[0].classList.contains('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container[0].classList.contains('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container[0].classList.add('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' + ' instead.');\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) {\n console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You ' + 'should consider setting the value instead using `$element.val()`.');\n }\n\n var data = [];\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.');\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if (Array.isArray(newVal)) {\n newVal = newVal.map(function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n Utils.RemoveData(this.$container[0]);\n this.$container.remove();\n\n this._observer.disconnect();\n\n this._observer = null;\n this._syncA = null;\n this._syncS = null;\n this.$element.off('.select2');\n this.$element.attr('tabindex', Utils.GetData(this.$element[0], 'old-tabindex'));\n this.$element[0].classList.remove('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $('' + '' + '' + '');\n $container.attr('dir', this.options.get('dir'));\n this.$container = $container;\n this.$container[0].classList.add('select2-container--' + this.options.get('theme'));\n Utils.StoreData($container[0], 'element', this.$element);\n return $container;\n };\n\n return Select2;\n });\n S2.define('jquery-mousewheel', ['jquery'], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n });\n S2.define('jquery.select2', ['jquery', 'jquery-mousewheel', './select2/core', './select2/defaults', './select2/utils'], function ($, _, Select2, Defaults, Utils) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (_typeof(options) === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n var instance = new Select2($(this), instanceOptions);\n });\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n console.error('The select2(\\'' + options + '\\') method was called on an ' + 'element that is not using Select2.');\n }\n\n ret = instance[options].apply(instance, args);\n }); // Check if we should be returning `this`\n\n if (thisMethods.indexOf(options) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n }); // Return the AMD loader configuration so it can be used outside of this file\n\n return {\n define: S2.define,\n require: S2.require\n };\n }(); // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n\n\n var select2 = S2.require('jquery.select2'); // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n\n\n jQuery.fn.select2.amd = S2; // Return the Select2 instance for anyone who is importing it.\n\n return select2;\n});","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name; // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","var _KEY_TO_DIRECTION;\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * Bootstrap v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar MAX_UID = 1000000;\nvar MILLISECONDS_MULTIPLIER = 1000;\nvar TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\nvar toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\".concat(obj);\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\nvar getUID = function getUID(prefix) {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n};\n\nvar getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = \"#\".concat(hrefAttr.split('#')[1]);\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n};\n\nvar getSelectorFromElement = function getSelectorFromElement(element) {\n var selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n};\n\nvar getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n};\n\nvar getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\n\nvar triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\n\nvar isElement = function isElement(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n};\n\nvar getElement = function getElement(obj) {\n if (isElement(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj);\n }\n\n return null;\n};\n\nvar typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\"\".concat(componentName.toUpperCase(), \": Option \\\"\").concat(property, \"\\\" provided type \\\"\").concat(valueType, \"\\\" but expected type \\\"\").concat(expectedTypes, \"\\\".\"));\n }\n });\n};\n\nvar isVisible = function isVisible(element) {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n};\n\nvar isDisabled = function isDisabled(element) {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\n\nvar findShadowRoot = function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n};\n\nvar noop = function noop() {};\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\nvar reflow = function reflow(element) {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight;\n};\n\nvar getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n};\n\nvar DOMContentLoadedCallbacks = [];\n\nvar onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', function () {\n DOMContentLoadedCallbacks.forEach(function (callback) {\n return callback();\n });\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\n\nvar isRTL = function isRTL() {\n return document.documentElement.dir === 'rtl';\n};\n\nvar defineJQueryPlugin = function defineJQueryPlugin(plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var name = plugin.NAME;\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\n\nvar execute = function execute(callback) {\n if (typeof callback === 'function') {\n callback();\n }\n};\n\nvar executeAfterTransition = function executeAfterTransition(callback, transitionElement) {\n var waitForTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n var durationPadding = 5;\n var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n var called = false;\n\n var handler = function handler(_ref) {\n var target = _ref.target;\n\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\nvar getNextActiveElement = function getNextActiveElement(list, activeElement, shouldGetNext, isCycleAllowed) {\n var index = list.indexOf(activeElement); // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];\n }\n\n var listLength = list.length;\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\nvar namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nvar stripNameRegex = /\\..*/;\nvar stripUidRegex = /::\\d+$/;\nvar eventRegistry = {}; // Events storage\n\nvar uidEvent = 1;\nvar customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nvar customEventsRegex = /^(mouseenter|mouseleave)/i;\nvar nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && \"\".concat(uid, \"::\").concat(uidEvent++) || element.uidEvent || uidEvent++;\n}\n\nfunction getEvent(element) {\n var uid = getUidEvent(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n var domElements = element.querySelectorAll(selector);\n\n for (var target = event.target; target && target !== this; target = target.parentNode) {\n for (var i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n } // To please ESLint\n\n\n return null;\n };\n}\n\nfunction findHandler(events, handler) {\n var delegationSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var uidEventList = Object.keys(events);\n\n for (var i = 0, len = uidEventList.length; i < len; i++) {\n var event = events[uidEventList[i]];\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event;\n }\n }\n\n return null;\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n var delegation = typeof handler === 'string';\n var originalHandler = delegation ? delegationFn : handler;\n var typeEvent = getTypeEvent(originalTypeEvent);\n var isNative = nativeEvents.has(typeEvent);\n\n if (!isNative) {\n typeEvent = originalTypeEvent;\n }\n\n return [delegation, originalHandler, typeEvent];\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n if (!handler) {\n handler = delegationFn;\n delegationFn = null;\n } // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n\n if (customEventsRegex.test(originalTypeEvent)) {\n var wrapFn = function wrapFn(fn) {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn);\n } else {\n handler = wrapFn(handler);\n }\n }\n\n var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn),\n _normalizeParams2 = _slicedToArray(_normalizeParams, 3),\n delegation = _normalizeParams2[0],\n originalHandler = _normalizeParams2[1],\n typeEvent = _normalizeParams2[2];\n\n var events = getEvent(element);\n var handlers = events[typeEvent] || (events[typeEvent] = {});\n var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff;\n return;\n }\n\n var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\n var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);\n fn.delegationSelector = delegation ? handler : null;\n fn.originalHandler = originalHandler;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, delegation);\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n var fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n var storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(function (handlerKey) {\n if (handlerKey.includes(namespace)) {\n var event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\n\nvar EventHandler = {\n on: function on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false);\n },\n one: function one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true);\n },\n off: function off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n var _normalizeParams3 = normalizeParams(originalTypeEvent, handler, delegationFn),\n _normalizeParams4 = _slicedToArray(_normalizeParams3, 3),\n delegation = _normalizeParams4[0],\n originalHandler = _normalizeParams4[1],\n typeEvent = _normalizeParams4[2];\n\n var inNamespace = typeEvent !== originalTypeEvent;\n var events = getEvent(element);\n var isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return;\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\n return;\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(function (elementEvent) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n });\n }\n\n var storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(function (keyHandlers) {\n var handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n var event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n },\n trigger: function trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n var $ = getjQuery();\n var typeEvent = getTypeEvent(event);\n var inNamespace = event !== typeEvent;\n var isNative = nativeEvents.has(typeEvent);\n var jQueryEvent;\n var bubbles = true;\n var nativeDispatch = true;\n var defaultPrevented = false;\n var evt = null;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents');\n evt.initEvent(typeEvent, bubbles, true);\n } else {\n evt = new CustomEvent(event, {\n bubbles: bubbles,\n cancelable: true\n });\n } // merge custom information in our event\n\n\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(function (key) {\n Object.defineProperty(evt, key, {\n get: function get() {\n return args[key];\n }\n });\n });\n }\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar elementMap = new Map();\nvar Data = {\n set: function set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n var instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(\"Bootstrap doesn't allow more than one instance per element. Bound instance: \".concat(Array.from(instanceMap.keys())[0], \".\"));\n return;\n }\n\n instanceMap.set(key, instance);\n },\n get: function get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n remove: function remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n var instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar VERSION = '5.1.3';\n\nvar BaseComponent = /*#__PURE__*/function () {\n function BaseComponent(element) {\n _classCallCheck(this, BaseComponent);\n\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n _createClass(BaseComponent, [{\n key: \"dispose\",\n value: function dispose() {\n var _this = this;\n\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n Object.getOwnPropertyNames(this).forEach(function (propertyName) {\n _this[propertyName] = null;\n });\n }\n }, {\n key: \"_queueCallback\",\n value: function _queueCallback(callback, element) {\n var isAnimated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n executeAfterTransition(callback, element, isAnimated);\n }\n /** Static */\n\n }], [{\n key: \"getInstance\",\n value: function getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n }, {\n key: \"getOrCreateInstance\",\n value: function getOrCreateInstance(element) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.getInstance(element) || new this(element, _typeof(config) === 'object' ? config : null);\n }\n }, {\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return \"bs.\".concat(this.NAME);\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return \".\".concat(this.DATA_KEY);\n }\n }]);\n\n return BaseComponent;\n}();\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\nvar enableDismissTrigger = function enableDismissTrigger(component) {\n var method = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'hide';\n var clickEvent = \"click.dismiss\".concat(component.EVENT_KEY);\n var name = component.NAME;\n EventHandler.on(document, clickEvent, \"[data-bs-dismiss=\\\"\".concat(name, \"\\\"]\"), function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n var target = getElementFromSelector(this) || this.closest(\".\".concat(name));\n var instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n instance[method]();\n });\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\nvar NAME$d = 'alert';\nvar DATA_KEY$c = 'bs.alert';\nvar EVENT_KEY$c = \".\".concat(DATA_KEY$c);\nvar EVENT_CLOSE = \"close\".concat(EVENT_KEY$c);\nvar EVENT_CLOSED = \"closed\".concat(EVENT_KEY$c);\nvar CLASS_NAME_FADE$5 = 'fade';\nvar CLASS_NAME_SHOW$8 = 'show';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Alert = /*#__PURE__*/function (_BaseComponent) {\n _inherits(Alert, _BaseComponent);\n\n var _super = _createSuper(Alert);\n\n function Alert() {\n _classCallCheck(this, Alert);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Alert, [{\n key: \"close\",\n value: // Public\n function close() {\n var _this2 = this;\n\n var closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n if (closeEvent.defaultPrevented) {\n return;\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n var isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n this._queueCallback(function () {\n return _this2._destroyElement();\n }, this._element, isAnimated);\n } // Private\n\n }, {\n key: \"_destroyElement\",\n value: function _destroyElement() {\n this._element.remove();\n\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n } // Static\n\n }], [{\n key: \"NAME\",\n get: // Getters\n function get() {\n return NAME$d;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Alert.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](this);\n });\n }\n }]);\n\n return Alert;\n}(BaseComponent);\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nenableDismissTrigger(Alert, 'close');\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Alert);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar NAME$c = 'button';\nvar DATA_KEY$b = 'bs.button';\nvar EVENT_KEY$b = \".\".concat(DATA_KEY$b);\nvar DATA_API_KEY$7 = '.data-api';\nvar CLASS_NAME_ACTIVE$3 = 'active';\nvar SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nvar EVENT_CLICK_DATA_API$6 = \"click\".concat(EVENT_KEY$b).concat(DATA_API_KEY$7);\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Button = /*#__PURE__*/function (_BaseComponent2) {\n _inherits(Button, _BaseComponent2);\n\n var _super2 = _createSuper(Button);\n\n function Button() {\n _classCallCheck(this, Button);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Button, [{\n key: \"toggle\",\n value: // Public\n function toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n }], [{\n key: \"NAME\",\n get: // Getters\n function get() {\n return NAME$c;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n }]);\n\n return Button;\n}(BaseComponent);\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, function (event) {\n event.preventDefault();\n var button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n var data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Button);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true;\n }\n\n if (val === 'false') {\n return false;\n }\n\n if (val === Number(val).toString()) {\n return Number(val);\n }\n\n if (val === '' || val === 'null') {\n return null;\n }\n\n return val;\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, function (chr) {\n return \"-\".concat(chr.toLowerCase());\n });\n}\n\nvar Manipulator = {\n setDataAttribute: function setDataAttribute(element, key, value) {\n element.setAttribute(\"data-bs-\".concat(normalizeDataKey(key)), value);\n },\n removeDataAttribute: function removeDataAttribute(element, key) {\n element.removeAttribute(\"data-bs-\".concat(normalizeDataKey(key)));\n },\n getDataAttributes: function getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n var attributes = {};\n Object.keys(element.dataset).filter(function (key) {\n return key.startsWith('bs');\n }).forEach(function (key) {\n var pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n });\n return attributes;\n },\n getDataAttribute: function getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(\"data-bs-\".concat(normalizeDataKey(key))));\n },\n offset: function offset(element) {\n var rect = element.getBoundingClientRect();\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n };\n },\n position: function position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n };\n }\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar NODE_TEXT = 3;\nvar SelectorEngine = {\n find: function find(selector) {\n var _ref2;\n\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n return (_ref2 = []).concat.apply(_ref2, _toConsumableArray(Element.prototype.querySelectorAll.call(element, selector)));\n },\n findOne: function findOne(selector) {\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.documentElement;\n return Element.prototype.querySelector.call(element, selector);\n },\n children: function children(element, selector) {\n var _ref3;\n\n return (_ref3 = []).concat.apply(_ref3, _toConsumableArray(element.children)).filter(function (child) {\n return child.matches(selector);\n });\n },\n parents: function parents(element, selector) {\n var parents = [];\n var ancestor = element.parentNode;\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor);\n }\n\n ancestor = ancestor.parentNode;\n }\n\n return parents;\n },\n prev: function prev(element, selector) {\n var previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n next: function next(element, selector) {\n var next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n focusableChildren: function focusableChildren(element) {\n var focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(function (selector) {\n return \"\".concat(selector, \":not([tabindex^=\\\"-\\\"])\");\n }).join(', ');\n return this.find(focusables, element).filter(function (el) {\n return !isDisabled(el) && isVisible(el);\n });\n }\n};\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar NAME$b = 'carousel';\nvar DATA_KEY$a = 'bs.carousel';\nvar EVENT_KEY$a = \".\".concat(DATA_KEY$a);\nvar DATA_API_KEY$6 = '.data-api';\nvar ARROW_LEFT_KEY = 'ArrowLeft';\nvar ARROW_RIGHT_KEY = 'ArrowRight';\nvar TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nvar SWIPE_THRESHOLD = 40;\nvar Default$a = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n};\nvar DefaultType$a = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n};\nvar ORDER_NEXT = 'next';\nvar ORDER_PREV = 'prev';\nvar DIRECTION_LEFT = 'left';\nvar DIRECTION_RIGHT = 'right';\nvar KEY_TO_DIRECTION = (_KEY_TO_DIRECTION = {}, _defineProperty(_KEY_TO_DIRECTION, ARROW_LEFT_KEY, DIRECTION_RIGHT), _defineProperty(_KEY_TO_DIRECTION, ARROW_RIGHT_KEY, DIRECTION_LEFT), _KEY_TO_DIRECTION);\nvar EVENT_SLIDE = \"slide\".concat(EVENT_KEY$a);\nvar EVENT_SLID = \"slid\".concat(EVENT_KEY$a);\nvar EVENT_KEYDOWN = \"keydown\".concat(EVENT_KEY$a);\nvar EVENT_MOUSEENTER = \"mouseenter\".concat(EVENT_KEY$a);\nvar EVENT_MOUSELEAVE = \"mouseleave\".concat(EVENT_KEY$a);\nvar EVENT_TOUCHSTART = \"touchstart\".concat(EVENT_KEY$a);\nvar EVENT_TOUCHMOVE = \"touchmove\".concat(EVENT_KEY$a);\nvar EVENT_TOUCHEND = \"touchend\".concat(EVENT_KEY$a);\nvar EVENT_POINTERDOWN = \"pointerdown\".concat(EVENT_KEY$a);\nvar EVENT_POINTERUP = \"pointerup\".concat(EVENT_KEY$a);\nvar EVENT_DRAG_START = \"dragstart\".concat(EVENT_KEY$a);\nvar EVENT_LOAD_DATA_API$2 = \"load\".concat(EVENT_KEY$a).concat(DATA_API_KEY$6);\nvar EVENT_CLICK_DATA_API$5 = \"click\".concat(EVENT_KEY$a).concat(DATA_API_KEY$6);\nvar CLASS_NAME_CAROUSEL = 'carousel';\nvar CLASS_NAME_ACTIVE$2 = 'active';\nvar CLASS_NAME_SLIDE = 'slide';\nvar CLASS_NAME_END = 'carousel-item-end';\nvar CLASS_NAME_START = 'carousel-item-start';\nvar CLASS_NAME_NEXT = 'carousel-item-next';\nvar CLASS_NAME_PREV = 'carousel-item-prev';\nvar CLASS_NAME_POINTER_EVENT = 'pointer-event';\nvar SELECTOR_ACTIVE$1 = '.active';\nvar SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\nvar SELECTOR_ITEM = '.carousel-item';\nvar SELECTOR_ITEM_IMG = '.carousel-item img';\nvar SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\nvar SELECTOR_INDICATORS = '.carousel-indicators';\nvar SELECTOR_INDICATOR = '[data-bs-target]';\nvar SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nvar SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nvar POINTER_TYPE_TOUCH = 'touch';\nvar POINTER_TYPE_PEN = 'pen';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Carousel = /*#__PURE__*/function (_BaseComponent3) {\n _inherits(Carousel, _BaseComponent3);\n\n var _super3 = _createSuper(Carousel);\n\n function Carousel(element, config) {\n var _this3;\n\n _classCallCheck(this, Carousel);\n\n _this3 = _super3.call(this, element);\n _this3._items = null;\n _this3._interval = null;\n _this3._activeElement = null;\n _this3._isPaused = false;\n _this3._isSliding = false;\n _this3.touchTimeout = null;\n _this3.touchStartX = 0;\n _this3.touchDeltaX = 0;\n _this3._config = _this3._getConfig(config);\n _this3._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, _this3._element);\n _this3._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n _this3._pointerEvent = Boolean(window.PointerEvent);\n\n _this3._addEventListeners();\n\n return _this3;\n } // Getters\n\n\n _createClass(Carousel, [{\n key: \"next\",\n value: // Public\n function next() {\n this._slide(ORDER_NEXT);\n }\n }, {\n key: \"nextWhenVisible\",\n value: function nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n }, {\n key: \"prev\",\n value: function prev() {\n this._slide(ORDER_PREV);\n }\n }, {\n key: \"pause\",\n value: function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n }\n }, {\n key: \"cycle\",\n value: function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n }\n }, {\n key: \"to\",\n value: function to(index) {\n var _this4 = this;\n\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, function () {\n return _this4.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, this._items[index]);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$a), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$b, config, DefaultType$a);\n return config;\n }\n }, {\n key: \"_handleSwipe\",\n value: function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0;\n\n if (!direction) {\n return;\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT);\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _this5 = this;\n\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, function (event) {\n return _this5._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, function (event) {\n return _this5.pause(event);\n });\n EventHandler.on(this._element, EVENT_MOUSELEAVE, function (event) {\n return _this5.cycle(event);\n });\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners();\n }\n }\n }, {\n key: \"_addTouchEventListeners\",\n value: function _addTouchEventListeners() {\n var _this6 = this;\n\n var hasPointerPenTouch = function hasPointerPenTouch(event) {\n return _this6._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n };\n\n var start = function start(event) {\n if (hasPointerPenTouch(event)) {\n _this6.touchStartX = event.clientX;\n } else if (!_this6._pointerEvent) {\n _this6.touchStartX = event.touches[0].clientX;\n }\n };\n\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n _this6.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - _this6.touchStartX;\n };\n\n var end = function end(event) {\n if (hasPointerPenTouch(event)) {\n _this6.touchDeltaX = event.clientX - _this6.touchStartX;\n }\n\n _this6._handleSwipe();\n\n if (_this6._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n _this6.pause();\n\n if (_this6.touchTimeout) {\n clearTimeout(_this6.touchTimeout);\n }\n\n _this6.touchTimeout = setTimeout(function (event) {\n return _this6.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this6._config.interval);\n }\n };\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {\n EventHandler.on(itemImg, EVENT_DRAG_START, function (event) {\n return event.preventDefault();\n });\n });\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n EventHandler.on(this._element, EVENT_POINTERUP, function (event) {\n return end(event);\n });\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n EventHandler.on(this._element, EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n EventHandler.on(this._element, EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n }\n }, {\n key: \"_keydown\",\n value: function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n var direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(direction);\n }\n }\n }, {\n key: \"_getItemIndex\",\n value: function _getItemIndex(element) {\n this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];\n return this._items.indexOf(element);\n }\n }, {\n key: \"_getItemByOrder\",\n value: function _getItemByOrder(order, activeElement) {\n var isNext = order === ORDER_NEXT;\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);\n }\n }, {\n key: \"_triggerSlideEvent\",\n value: function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n }\n }, {\n key: \"_setActiveIndicatorElement\",\n value: function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n var indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement);\n\n for (var i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE$2);\n indicators[i].setAttribute('aria-current', 'true');\n break;\n }\n }\n }\n }\n }, {\n key: \"_updateInterval\",\n value: function _updateInterval() {\n var element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n if (!element) {\n return;\n }\n\n var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n }\n }, {\n key: \"_slide\",\n value: function _slide(directionOrOrder, element) {\n var _this7 = this;\n\n var order = this._directionToOrder(directionOrOrder);\n\n var activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || this._getItemByOrder(order, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var isNext = order === ORDER_NEXT;\n var directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n var orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n\n var eventDirectionName = this._orderToDirection(order);\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) {\n this._isSliding = false;\n return;\n }\n\n if (this._isSliding) {\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n this._activeElement = nextElement;\n\n var triggerSlidEvent = function triggerSlidEvent() {\n EventHandler.trigger(_this7._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n };\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n\n var completeCallBack = function completeCallBack() {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n _this7._isSliding = false;\n setTimeout(triggerSlidEvent, 0);\n };\n\n this._queueCallback(completeCallBack, activeElement, true);\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n this._isSliding = false;\n triggerSlidEvent();\n }\n\n if (isCycling) {\n this.cycle();\n }\n }\n }, {\n key: \"_directionToOrder\",\n value: function _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction;\n }\n\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n }, {\n key: \"_orderToDirection\",\n value: function _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order;\n }\n\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$a;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$b;\n }\n }, {\n key: \"carouselInterface\",\n value: function carouselInterface(element, config) {\n var data = Carousel.getOrCreateInstance(element, config);\n var _config = data._config;\n\n if (_typeof(config) === 'object') {\n _config = _objectSpread(_objectSpread({}, _config), config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(action, \"\\\"\"));\n }\n\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config);\n });\n }\n }, {\n key: \"dataApiClickHandler\",\n value: function dataApiClickHandler(event) {\n var target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n var config = _objectSpread(_objectSpread({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));\n\n var slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel.carouselInterface(target, config);\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex);\n }\n\n event.preventDefault();\n }\n }]);\n\n return Carousel;\n}(BaseComponent);\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, function () {\n var carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));\n }\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Carousel);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar NAME$a = 'collapse';\nvar DATA_KEY$9 = 'bs.collapse';\nvar EVENT_KEY$9 = \".\".concat(DATA_KEY$9);\nvar DATA_API_KEY$5 = '.data-api';\nvar Default$9 = {\n toggle: true,\n parent: null\n};\nvar DefaultType$9 = {\n toggle: 'boolean',\n parent: '(null|element)'\n};\nvar EVENT_SHOW$5 = \"show\".concat(EVENT_KEY$9);\nvar EVENT_SHOWN$5 = \"shown\".concat(EVENT_KEY$9);\nvar EVENT_HIDE$5 = \"hide\".concat(EVENT_KEY$9);\nvar EVENT_HIDDEN$5 = \"hidden\".concat(EVENT_KEY$9);\nvar EVENT_CLICK_DATA_API$4 = \"click\".concat(EVENT_KEY$9).concat(DATA_API_KEY$5);\nvar CLASS_NAME_SHOW$7 = 'show';\nvar CLASS_NAME_COLLAPSE = 'collapse';\nvar CLASS_NAME_COLLAPSING = 'collapsing';\nvar CLASS_NAME_COLLAPSED = 'collapsed';\nvar CLASS_NAME_DEEPER_CHILDREN = \":scope .\".concat(CLASS_NAME_COLLAPSE, \" .\").concat(CLASS_NAME_COLLAPSE);\nvar CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nvar WIDTH = 'width';\nvar HEIGHT = 'height';\nvar SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nvar SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Collapse = /*#__PURE__*/function (_BaseComponent4) {\n _inherits(Collapse, _BaseComponent4);\n\n var _super4 = _createSuper(Collapse);\n\n function Collapse(element, config) {\n var _this8;\n\n _classCallCheck(this, Collapse);\n\n _this8 = _super4.call(this, element);\n _this8._isTransitioning = false;\n _this8._config = _this8._getConfig(config);\n _this8._triggerArray = [];\n var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = getSelectorFromElement(elem);\n var filterElement = SelectorEngine.find(selector).filter(function (foundElem) {\n return foundElem === _this8._element;\n });\n\n if (selector !== null && filterElement.length) {\n _this8._selector = selector;\n\n _this8._triggerArray.push(elem);\n }\n }\n\n _this8._initializeChildren();\n\n if (!_this8._config.parent) {\n _this8._addAriaAndCollapsedClass(_this8._triggerArray, _this8._isShown());\n }\n\n if (_this8._config.toggle) {\n _this8.toggle();\n }\n\n return _this8;\n } // Getters\n\n\n _createClass(Collapse, [{\n key: \"toggle\",\n value: // Public\n function toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this9 = this;\n\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n var actives = [];\n var activesData;\n\n if (this._config.parent) {\n var children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(function (elem) {\n return !children.includes(elem);\n }); // remove children if greater depth\n }\n\n var container = SelectorEngine.findOne(this._selector);\n\n if (actives.length) {\n var tempActiveData = actives.find(function (elem) {\n return container !== elem;\n });\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n actives.forEach(function (elemActive) {\n if (container !== elemActive) {\n Collapse.getOrCreateInstance(elemActive, {\n toggle: false\n }).hide();\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY$9, null);\n }\n });\n\n var dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n var complete = function complete() {\n _this9._isTransitioning = false;\n\n _this9._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this9._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n _this9._element.style[dimension] = '';\n EventHandler.trigger(_this9._element, EVENT_SHOWN$5);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\".concat(capitalizedDimension);\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = \"\".concat(this._element[scrollSize], \"px\");\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this10 = this;\n\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n var startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = \"\".concat(this._element.getBoundingClientRect()[dimension], \"px\");\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n var triggerArrayLength = this._triggerArray.length;\n\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var elem = getElementFromSelector(trigger);\n\n if (elem && !this._isShown(elem)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n var complete = function complete() {\n _this10._isTransitioning = false;\n\n _this10._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this10._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(_this10._element, EVENT_HIDDEN$5);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n }, {\n key: \"_isShown\",\n value: function _isShown() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element;\n return element.classList.contains(CLASS_NAME_SHOW$7);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$9), Manipulator.getDataAttributes(this._element)), config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = getElement(config.parent);\n typeCheckConfig(NAME$a, config, DefaultType$9);\n return config;\n }\n }, {\n key: \"_getDimension\",\n value: function _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n }, {\n key: \"_initializeChildren\",\n value: function _initializeChildren() {\n var _this11 = this;\n\n if (!this._config.parent) {\n return;\n }\n\n var children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent).filter(function (elem) {\n return !children.includes(elem);\n }).forEach(function (element) {\n var selected = getElementFromSelector(element);\n\n if (selected) {\n _this11._addAriaAndCollapsedClass([element], _this11._isShown(selected));\n }\n });\n }\n }, {\n key: \"_addAriaAndCollapsedClass\",\n value: function _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n triggerArray.forEach(function (elem) {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED);\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED);\n }\n\n elem.setAttribute('aria-expanded', isOpen);\n });\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$9;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$a;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n var data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n });\n }\n }]);\n\n return Collapse;\n}(BaseComponent);\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var selector = getSelectorFromElement(this);\n var selectorElements = SelectorEngine.find(selector);\n selectorElements.forEach(function (element) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n });\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Collapse);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar NAME$9 = 'dropdown';\nvar DATA_KEY$8 = 'bs.dropdown';\nvar EVENT_KEY$8 = \".\".concat(DATA_KEY$8);\nvar DATA_API_KEY$4 = '.data-api';\nvar ESCAPE_KEY$2 = 'Escape';\nvar SPACE_KEY = 'Space';\nvar TAB_KEY$1 = 'Tab';\nvar ARROW_UP_KEY = 'ArrowUp';\nvar ARROW_DOWN_KEY = 'ArrowDown';\nvar RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nvar REGEXP_KEYDOWN = new RegExp(\"\".concat(ARROW_UP_KEY, \"|\").concat(ARROW_DOWN_KEY, \"|\").concat(ESCAPE_KEY$2));\nvar EVENT_HIDE$4 = \"hide\".concat(EVENT_KEY$8);\nvar EVENT_HIDDEN$4 = \"hidden\".concat(EVENT_KEY$8);\nvar EVENT_SHOW$4 = \"show\".concat(EVENT_KEY$8);\nvar EVENT_SHOWN$4 = \"shown\".concat(EVENT_KEY$8);\nvar EVENT_CLICK_DATA_API$3 = \"click\".concat(EVENT_KEY$8).concat(DATA_API_KEY$4);\nvar EVENT_KEYDOWN_DATA_API = \"keydown\".concat(EVENT_KEY$8).concat(DATA_API_KEY$4);\nvar EVENT_KEYUP_DATA_API = \"keyup\".concat(EVENT_KEY$8).concat(DATA_API_KEY$4);\nvar CLASS_NAME_SHOW$6 = 'show';\nvar CLASS_NAME_DROPUP = 'dropup';\nvar CLASS_NAME_DROPEND = 'dropend';\nvar CLASS_NAME_DROPSTART = 'dropstart';\nvar CLASS_NAME_NAVBAR = 'navbar';\nvar SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]';\nvar SELECTOR_MENU = '.dropdown-menu';\nvar SELECTOR_NAVBAR_NAV = '.navbar-nav';\nvar SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nvar PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nvar PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nvar PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nvar PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nvar PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nvar PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nvar Default$8 = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n};\nvar DefaultType$8 = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n};\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Dropdown = /*#__PURE__*/function (_BaseComponent5) {\n _inherits(Dropdown, _BaseComponent5);\n\n var _super5 = _createSuper(Dropdown);\n\n function Dropdown(element, config) {\n var _this12;\n\n _classCallCheck(this, Dropdown);\n\n _this12 = _super5.call(this, element);\n _this12._popper = null;\n _this12._config = _this12._getConfig(config);\n _this12._menu = _this12._getMenuElement();\n _this12._inNavbar = _this12._detectNavbar();\n return _this12;\n } // Getters\n\n\n _createClass(Dropdown, [{\n key: \"toggle\",\n value: // Public\n function toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n }, {\n key: \"show\",\n value: function show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n var parent = Dropdown.getParentFromElement(this._element); // Totally disable Popper for Dropdowns in Navbar\n\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none');\n } else {\n this._createPopper(parent);\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n var _ref4;\n\n (_ref4 = []).concat.apply(_ref4, _toConsumableArray(document.body.children)).forEach(function (elem) {\n return EventHandler.on(elem, 'mouseover', noop);\n });\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n this._element.classList.add(CLASS_NAME_SHOW$6);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n _get(_getPrototypeOf(Dropdown.prototype), \"dispose\", this).call(this);\n }\n }, {\n key: \"update\",\n value: function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n }, {\n key: \"_completeHide\",\n value: function _completeHide(relatedTarget) {\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref5;\n\n (_ref5 = []).concat.apply(_ref5, _toConsumableArray(document.body.children)).forEach(function (elem) {\n return EventHandler.off(elem, 'mouseover', noop);\n });\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);\n typeCheckConfig(NAME$9, config, this.constructor.DefaultType);\n\n if (_typeof(config.reference) === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(\"\".concat(NAME$9.toUpperCase(), \": Option \\\"reference\\\" provided type \\\"object\\\" without a required \\\"getBoundingClientRect\\\" method.\"));\n }\n\n return config;\n }\n }, {\n key: \"_createPopper\",\n value: function _createPopper(parent) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n var referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (_typeof(this._config.reference) === 'object') {\n referenceElement = this._config.reference;\n }\n\n var popperConfig = this._getPopperConfig();\n\n var isDisplayStatic = popperConfig.modifiers.find(function (modifier) {\n return modifier.name === 'applyStyles' && modifier.enabled === false;\n });\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static');\n }\n }\n }, {\n key: \"_isShown\",\n value: function _isShown() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element;\n return element.classList.contains(CLASS_NAME_SHOW$6);\n }\n }, {\n key: \"_getMenuElement\",\n value: function _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0];\n }\n }, {\n key: \"_getPlacement\",\n value: function _getPlacement() {\n var parentDropdown = this._element.parentNode;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n } // We need to trim the value because custom properties can also include spaces\n\n\n var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n }, {\n key: \"_detectNavbar\",\n value: function _detectNavbar() {\n return this._element.closest(\".\".concat(CLASS_NAME_NAVBAR)) !== null;\n }\n }, {\n key: \"_getOffset\",\n value: function _getOffset() {\n var _this13 = this;\n\n var offset = this._config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this13._element);\n };\n }\n\n return offset;\n }\n }, {\n key: \"_getPopperConfig\",\n value: function _getPopperConfig() {\n var defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return _objectSpread(_objectSpread({}, defaultBsPopperConfig), typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n }\n }, {\n key: \"_selectMenuItem\",\n value: function _selectMenuItem(_ref6) {\n var key = _ref6.key,\n target = _ref6.target;\n var items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\n\n if (!items.length) {\n return;\n } // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus();\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$8;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$8;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$9;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n });\n }\n }, {\n key: \"clearMenus\",\n value: function clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1)) {\n return;\n }\n\n var toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var context = Dropdown.getInstance(toggles[i]);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n if (!context._isShown()) {\n continue;\n }\n\n var relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event) {\n var composedPath = event.composedPath();\n var isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n }\n\n context._completeHide(relatedTarget);\n }\n }\n }, {\n key: \"getParentFromElement\",\n value: function getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode;\n }\n }, {\n key: \"dataApiKeydownHandler\",\n value: function dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {\n return;\n }\n\n var isActive = this.classList.contains(CLASS_NAME_SHOW$6);\n\n if (!isActive && event.key === ESCAPE_KEY$2) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isDisabled(this)) {\n return;\n }\n\n var getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];\n var instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n if (event.key === ESCAPE_KEY$2) {\n instance.hide();\n return;\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show();\n }\n\n instance._selectMenuItem(event);\n\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n }\n }\n }]);\n\n return Dropdown;\n}(BaseComponent);\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Dropdown);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nvar SELECTOR_STICKY_CONTENT = '.sticky-top';\n\nvar ScrollBarHelper = /*#__PURE__*/function () {\n function ScrollBarHelper() {\n _classCallCheck(this, ScrollBarHelper);\n\n this._element = document.body;\n }\n\n _createClass(ScrollBarHelper, [{\n key: \"getWidth\",\n value: function getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n var documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, 'paddingRight', function (calculatedValue) {\n return calculatedValue + width;\n }); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {\n return calculatedValue + width;\n });\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {\n return calculatedValue - width;\n });\n }\n }, {\n key: \"_disableOverFlow\",\n value: function _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n }, {\n key: \"_setElementAttributes\",\n value: function _setElementAttributes(selector, styleProp, callback) {\n var _this14 = this;\n\n var scrollbarWidth = this.getWidth();\n\n var manipulationCallBack = function manipulationCallBack(element) {\n if (element !== _this14._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n _this14._saveInitialAttribute(element, styleProp);\n\n var calculatedValue = window.getComputedStyle(element)[styleProp];\n element.style[styleProp] = \"\".concat(callback(Number.parseFloat(calculatedValue)), \"px\");\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n }\n }, {\n key: \"_saveInitialAttribute\",\n value: function _saveInitialAttribute(element, styleProp) {\n var actualValue = element.style[styleProp];\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProp, actualValue);\n }\n }\n }, {\n key: \"_resetElementAttributes\",\n value: function _resetElementAttributes(selector, styleProp) {\n var manipulationCallBack = function manipulationCallBack(element) {\n var value = Manipulator.getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp);\n } else {\n Manipulator.removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n }, {\n key: \"_applyManipulationCallback\",\n value: function _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n } else {\n SelectorEngine.find(selector, this._element).forEach(callBack);\n }\n }\n }, {\n key: \"isOverflowing\",\n value: function isOverflowing() {\n return this.getWidth() > 0;\n }\n }]);\n\n return ScrollBarHelper;\n}();\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\nvar Default$7 = {\n className: 'modal-backdrop',\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body',\n // give the choice to place backdrop under different elements\n clickCallback: null\n};\nvar DefaultType$7 = {\n className: 'string',\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n};\nvar NAME$8 = 'backdrop';\nvar CLASS_NAME_FADE$4 = 'fade';\nvar CLASS_NAME_SHOW$5 = 'show';\nvar EVENT_MOUSEDOWN = \"mousedown.bs.\".concat(NAME$8);\n\nvar Backdrop = /*#__PURE__*/function () {\n function Backdrop(config) {\n _classCallCheck(this, Backdrop);\n\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n _createClass(Backdrop, [{\n key: \"show\",\n value: function show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n if (this._config.isAnimated) {\n reflow(this._getElement());\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(function () {\n execute(callback);\n });\n }\n }, {\n key: \"hide\",\n value: function hide(callback) {\n var _this15 = this;\n\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(function () {\n _this15.dispose();\n\n execute(callback);\n });\n } // Private\n\n }, {\n key: \"_getElement\",\n value: function _getElement() {\n if (!this._element) {\n var backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread({}, Default$7), _typeof(config) === 'object' ? config : {}); // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n\n config.rootElement = getElement(config.rootElement);\n typeCheckConfig(NAME$8, config, DefaultType$7);\n return config;\n }\n }, {\n key: \"_append\",\n value: function _append() {\n var _this16 = this;\n\n if (this._isAppended) {\n return;\n }\n\n this._config.rootElement.append(this._getElement());\n\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, function () {\n execute(_this16._config.clickCallback);\n });\n this._isAppended = true;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n }\n }, {\n key: \"_emulateAnimation\",\n value: function _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n }]);\n\n return Backdrop;\n}();\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\nvar Default$6 = {\n trapElement: null,\n // The element to trap focus inside of\n autofocus: true\n};\nvar DefaultType$6 = {\n trapElement: 'element',\n autofocus: 'boolean'\n};\nvar NAME$7 = 'focustrap';\nvar DATA_KEY$7 = 'bs.focustrap';\nvar EVENT_KEY$7 = \".\".concat(DATA_KEY$7);\nvar EVENT_FOCUSIN$1 = \"focusin\".concat(EVENT_KEY$7);\nvar EVENT_KEYDOWN_TAB = \"keydown.tab\".concat(EVENT_KEY$7);\nvar TAB_KEY = 'Tab';\nvar TAB_NAV_FORWARD = 'forward';\nvar TAB_NAV_BACKWARD = 'backward';\n\nvar FocusTrap = /*#__PURE__*/function () {\n function FocusTrap(config) {\n _classCallCheck(this, FocusTrap);\n\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n _createClass(FocusTrap, [{\n key: \"activate\",\n value: function activate() {\n var _this17 = this;\n\n var _this$_config = this._config,\n trapElement = _this$_config.trapElement,\n autofocus = _this$_config.autofocus;\n\n if (this._isActive) {\n return;\n }\n\n if (autofocus) {\n trapElement.focus();\n }\n\n EventHandler.off(document, EVENT_KEY$7); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$1, function (event) {\n return _this17._handleFocusin(event);\n });\n EventHandler.on(document, EVENT_KEYDOWN_TAB, function (event) {\n return _this17._handleKeydown(event);\n });\n this._isActive = true;\n }\n }, {\n key: \"deactivate\",\n value: function deactivate() {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$7);\n } // Private\n\n }, {\n key: \"_handleFocusin\",\n value: function _handleFocusin(event) {\n var target = event.target;\n var trapElement = this._config.trapElement;\n\n if (target === document || target === trapElement || trapElement.contains(target)) {\n return;\n }\n\n var elements = SelectorEngine.focusableChildren(trapElement);\n\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n }, {\n key: \"_handleKeydown\",\n value: function _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread({}, Default$6), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$7, config, DefaultType$6);\n return config;\n }\n }]);\n\n return FocusTrap;\n}();\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\nvar NAME$6 = 'modal';\nvar DATA_KEY$6 = 'bs.modal';\nvar EVENT_KEY$6 = \".\".concat(DATA_KEY$6);\nvar DATA_API_KEY$3 = '.data-api';\nvar ESCAPE_KEY$1 = 'Escape';\nvar Default$5 = {\n backdrop: true,\n keyboard: true,\n focus: true\n};\nvar DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n};\nvar EVENT_HIDE$3 = \"hide\".concat(EVENT_KEY$6);\nvar EVENT_HIDE_PREVENTED = \"hidePrevented\".concat(EVENT_KEY$6);\nvar EVENT_HIDDEN$3 = \"hidden\".concat(EVENT_KEY$6);\nvar EVENT_SHOW$3 = \"show\".concat(EVENT_KEY$6);\nvar EVENT_SHOWN$3 = \"shown\".concat(EVENT_KEY$6);\nvar EVENT_RESIZE = \"resize\".concat(EVENT_KEY$6);\nvar EVENT_CLICK_DISMISS = \"click.dismiss\".concat(EVENT_KEY$6);\nvar EVENT_KEYDOWN_DISMISS$1 = \"keydown.dismiss\".concat(EVENT_KEY$6);\nvar EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\".concat(EVENT_KEY$6);\nvar EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\".concat(EVENT_KEY$6);\nvar EVENT_CLICK_DATA_API$2 = \"click\".concat(EVENT_KEY$6).concat(DATA_API_KEY$3);\nvar CLASS_NAME_OPEN = 'modal-open';\nvar CLASS_NAME_FADE$3 = 'fade';\nvar CLASS_NAME_SHOW$4 = 'show';\nvar CLASS_NAME_STATIC = 'modal-static';\nvar OPEN_SELECTOR$1 = '.modal.show';\nvar SELECTOR_DIALOG = '.modal-dialog';\nvar SELECTOR_MODAL_BODY = '.modal-body';\nvar SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Modal = /*#__PURE__*/function (_BaseComponent6) {\n _inherits(Modal, _BaseComponent6);\n\n var _super6 = _createSuper(Modal);\n\n function Modal(element, config) {\n var _this18;\n\n _classCallCheck(this, Modal);\n\n _this18 = _super6.call(this, element);\n _this18._config = _this18._getConfig(config);\n _this18._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, _this18._element);\n _this18._backdrop = _this18._initializeBackDrop();\n _this18._focustrap = _this18._initializeFocusTrap();\n _this18._isShown = false;\n _this18._ignoreBackdropClick = false;\n _this18._isTransitioning = false;\n _this18._scrollBar = new ScrollBarHelper();\n return _this18;\n } // Getters\n\n\n _createClass(Modal, [{\n key: \"toggle\",\n value: // Public\n function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n }, {\n key: \"show\",\n value: function show(relatedTarget) {\n var _this19 = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget: relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n if (this._isAnimated()) {\n this._isTransitioning = true;\n }\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {\n EventHandler.one(_this19._element, EVENT_MOUSEUP_DISMISS, function (event) {\n if (event.target === _this19._element) {\n _this19._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this19._showElement(relatedTarget);\n });\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this20 = this;\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n var isAnimated = this._isAnimated();\n\n if (isAnimated) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n this._focustrap.deactivate();\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n this._queueCallback(function () {\n return _this20._hideModal();\n }, this._element, isAnimated);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n [window, this._dialog].forEach(function (htmlElement) {\n return EventHandler.off(htmlElement, EVENT_KEY$6);\n });\n\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n _get(_getPrototypeOf(Modal.prototype), \"dispose\", this).call(this);\n }\n }, {\n key: \"handleUpdate\",\n value: function handleUpdate() {\n this._adjustDialog();\n } // Private\n\n }, {\n key: \"_initializeBackDrop\",\n value: function _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n });\n }\n }, {\n key: \"_initializeFocusTrap\",\n value: function _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$5), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$6, config, DefaultType$5);\n return config;\n }\n }, {\n key: \"_showElement\",\n value: function _showElement(relatedTarget) {\n var _this21 = this;\n\n var isAnimated = this._isAnimated();\n\n var modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.append(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (isAnimated) {\n reflow(this._element);\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n var transitionComplete = function transitionComplete() {\n if (_this21._config.focus) {\n _this21._focustrap.activate();\n }\n\n _this21._isTransitioning = false;\n EventHandler.trigger(_this21._element, EVENT_SHOWN$3, {\n relatedTarget: relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\n }\n }, {\n key: \"_setEscapeEvent\",\n value: function _setEscapeEvent() {\n var _this22 = this;\n\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, function (event) {\n if (_this22._config.keyboard && event.key === ESCAPE_KEY$1) {\n event.preventDefault();\n\n _this22.hide();\n } else if (!_this22._config.keyboard && event.key === ESCAPE_KEY$1) {\n _this22._triggerBackdropTransition();\n }\n });\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);\n }\n }\n }, {\n key: \"_setResizeEvent\",\n value: function _setResizeEvent() {\n var _this23 = this;\n\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, function () {\n return _this23._adjustDialog();\n });\n } else {\n EventHandler.off(window, EVENT_RESIZE);\n }\n }\n }, {\n key: \"_hideModal\",\n value: function _hideModal() {\n var _this24 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(function () {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n _this24._resetAdjustments();\n\n _this24._scrollBar.reset();\n\n EventHandler.trigger(_this24._element, EVENT_HIDDEN$3);\n });\n }\n }, {\n key: \"_showBackdrop\",\n value: function _showBackdrop(callback) {\n var _this25 = this;\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, function (event) {\n if (_this25._ignoreBackdropClick) {\n _this25._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this25._config.backdrop === true) {\n _this25.hide();\n } else if (_this25._config.backdrop === 'static') {\n _this25._triggerBackdropTransition();\n }\n });\n\n this._backdrop.show(callback);\n }\n }, {\n key: \"_isAnimated\",\n value: function _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n }, {\n key: \"_triggerBackdropTransition\",\n value: function _triggerBackdropTransition() {\n var _this26 = this;\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n var _this$_element = this._element,\n classList = _this$_element.classList,\n scrollHeight = _this$_element.scrollHeight,\n style = _this$_element.style;\n var isModalOverflowing = scrollHeight > document.documentElement.clientHeight; // return if the following background transition hasn't yet completed\n\n if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden';\n }\n\n classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(function () {\n classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n _this26._queueCallback(function () {\n style.overflowY = '';\n }, _this26._dialog);\n }\n }, this._dialog);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n }, {\n key: \"_adjustDialog\",\n value: function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n var scrollbarWidth = this._scrollBar.getWidth();\n\n var isBodyOverflowing = scrollbarWidth > 0;\n\n if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {\n this._element.style.paddingLeft = \"\".concat(scrollbarWidth, \"px\");\n }\n\n if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {\n this._element.style.paddingRight = \"\".concat(scrollbarWidth, \"px\");\n }\n }\n }, {\n key: \"_resetAdjustments\",\n value: function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$5;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$6;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](relatedTarget);\n });\n }\n }]);\n\n return Modal;\n}(BaseComponent);\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n var _this27 = this;\n\n var target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$3, function (showEvent) {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, function () {\n if (isVisible(_this27)) {\n _this27.focus();\n }\n });\n }); // avoid conflict when clicking moddal toggler while another one is open\n\n var allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n if (allReadyOpen) {\n Modal.getInstance(allReadyOpen).hide();\n }\n\n var data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Modal);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar NAME$5 = 'offcanvas';\nvar DATA_KEY$5 = 'bs.offcanvas';\nvar EVENT_KEY$5 = \".\".concat(DATA_KEY$5);\nvar DATA_API_KEY$2 = '.data-api';\nvar EVENT_LOAD_DATA_API$1 = \"load\".concat(EVENT_KEY$5).concat(DATA_API_KEY$2);\nvar ESCAPE_KEY = 'Escape';\nvar Default$4 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nvar DefaultType$4 = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\nvar CLASS_NAME_SHOW$3 = 'show';\nvar CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nvar OPEN_SELECTOR = '.offcanvas.show';\nvar EVENT_SHOW$2 = \"show\".concat(EVENT_KEY$5);\nvar EVENT_SHOWN$2 = \"shown\".concat(EVENT_KEY$5);\nvar EVENT_HIDE$2 = \"hide\".concat(EVENT_KEY$5);\nvar EVENT_HIDDEN$2 = \"hidden\".concat(EVENT_KEY$5);\nvar EVENT_CLICK_DATA_API$1 = \"click\".concat(EVENT_KEY$5).concat(DATA_API_KEY$2);\nvar EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\".concat(EVENT_KEY$5);\nvar SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Offcanvas = /*#__PURE__*/function (_BaseComponent7) {\n _inherits(Offcanvas, _BaseComponent7);\n\n var _super7 = _createSuper(Offcanvas);\n\n function Offcanvas(element, config) {\n var _this28;\n\n _classCallCheck(this, Offcanvas);\n\n _this28 = _super7.call(this, element);\n _this28._config = _this28._getConfig(config);\n _this28._isShown = false;\n _this28._backdrop = _this28._initializeBackDrop();\n _this28._focustrap = _this28._initializeFocusTrap();\n\n _this28._addEventListeners();\n\n return _this28;\n } // Getters\n\n\n _createClass(Offcanvas, [{\n key: \"toggle\",\n value: // Public\n function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n }, {\n key: \"show\",\n value: function show(relatedTarget) {\n var _this29 = this;\n\n if (this._isShown) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, {\n relatedTarget: relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._element.style.visibility = 'visible';\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOW$3);\n\n var completeCallBack = function completeCallBack() {\n if (!_this29._config.scroll) {\n _this29._focustrap.activate();\n }\n\n EventHandler.trigger(_this29._element, EVENT_SHOWN$2, {\n relatedTarget: relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this30 = this;\n\n if (!this._isShown) {\n return;\n }\n\n var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.remove(CLASS_NAME_SHOW$3);\n\n this._backdrop.hide();\n\n var completeCallback = function completeCallback() {\n _this30._element.setAttribute('aria-hidden', true);\n\n _this30._element.removeAttribute('aria-modal');\n\n _this30._element.removeAttribute('role');\n\n _this30._element.style.visibility = 'hidden';\n\n if (!_this30._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(_this30._element, EVENT_HIDDEN$2);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n _get(_getPrototypeOf(Offcanvas.prototype), \"dispose\", this).call(this);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$4), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME$5, config, DefaultType$4);\n return config;\n }\n }, {\n key: \"_initializeBackDrop\",\n value: function _initializeBackDrop() {\n var _this31 = this;\n\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: function clickCallback() {\n return _this31.hide();\n }\n });\n }\n }, {\n key: \"_initializeFocusTrap\",\n value: function _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _this32 = this;\n\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this32._config.keyboard && event.key === ESCAPE_KEY) {\n _this32.hide();\n }\n });\n } // Static\n\n }], [{\n key: \"NAME\",\n get: function get() {\n return NAME$5;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$4;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](this);\n });\n }\n }]);\n\n return Offcanvas;\n}(BaseComponent);\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n var _this33 = this;\n\n var target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$2, function () {\n // focus on trigger when it is closed\n if (isVisible(_this33)) {\n _this33.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n var allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (allReadyOpen && allReadyOpen !== target) {\n Offcanvas.getInstance(allReadyOpen).hide();\n }\n\n var data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$1, function () {\n return SelectorEngine.find(OPEN_SELECTOR).forEach(function (el) {\n return Offcanvas.getOrCreateInstance(el).show();\n });\n});\nenableDismissTrigger(Offcanvas);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(Offcanvas);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\nvar ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nvar SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nvar DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\nvar allowedAttribute = function allowedAttribute(attribute, allowedAttributeList) {\n var attributeName = attribute.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (attributeRegex) {\n return attributeRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attributeName)) {\n return true;\n }\n }\n\n return false;\n};\n\nvar DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n var _ref7;\n\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n\n var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n\n var elements = (_ref7 = []).concat.apply(_ref7, _toConsumableArray(createdDocument.body.querySelectorAll('*')));\n\n var _loop = function _loop(i, len) {\n var _ref8;\n\n var element = elements[i];\n var elementName = element.nodeName.toLowerCase();\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n return \"continue\";\n }\n\n var attributeList = (_ref8 = []).concat.apply(_ref8, _toConsumableArray(element.attributes));\n\n var allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n attributeList.forEach(function (attribute) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n });\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop(i, len);\n\n if (_ret === \"continue\") continue;\n }\n\n return createdDocument.body.innerHTML;\n}\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\nvar NAME$4 = 'tooltip';\nvar DATA_KEY$4 = 'bs.tooltip';\nvar EVENT_KEY$4 = \".\".concat(DATA_KEY$4);\nvar CLASS_PREFIX$1 = 'bs-tooltip';\nvar DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nvar DefaultType$3 = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n};\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nvar Default$3 = {\n animation: true,\n template: '
    ' + '
    ' + '
    ' + '
    ',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n};\nvar Event$2 = {\n HIDE: \"hide\".concat(EVENT_KEY$4),\n HIDDEN: \"hidden\".concat(EVENT_KEY$4),\n SHOW: \"show\".concat(EVENT_KEY$4),\n SHOWN: \"shown\".concat(EVENT_KEY$4),\n INSERTED: \"inserted\".concat(EVENT_KEY$4),\n CLICK: \"click\".concat(EVENT_KEY$4),\n FOCUSIN: \"focusin\".concat(EVENT_KEY$4),\n FOCUSOUT: \"focusout\".concat(EVENT_KEY$4),\n MOUSEENTER: \"mouseenter\".concat(EVENT_KEY$4),\n MOUSELEAVE: \"mouseleave\".concat(EVENT_KEY$4)\n};\nvar CLASS_NAME_FADE$2 = 'fade';\nvar CLASS_NAME_MODAL = 'modal';\nvar CLASS_NAME_SHOW$2 = 'show';\nvar HOVER_STATE_SHOW = 'show';\nvar HOVER_STATE_OUT = 'out';\nvar SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nvar SELECTOR_MODAL = \".\".concat(CLASS_NAME_MODAL);\nvar EVENT_MODAL_HIDE = 'hide.bs.modal';\nvar TRIGGER_HOVER = 'hover';\nvar TRIGGER_FOCUS = 'focus';\nvar TRIGGER_CLICK = 'click';\nvar TRIGGER_MANUAL = 'manual';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Tooltip = /*#__PURE__*/function (_BaseComponent8) {\n _inherits(Tooltip, _BaseComponent8);\n\n var _super8 = _createSuper(Tooltip);\n\n function Tooltip(element, config) {\n var _this34;\n\n _classCallCheck(this, Tooltip);\n\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n _this34 = _super8.call(this, element); // private\n\n _this34._isEnabled = true;\n _this34._timeout = 0;\n _this34._hoverState = '';\n _this34._activeTrigger = {};\n _this34._popper = null; // Protected\n\n _this34._config = _this34._getConfig(config);\n _this34.tip = null;\n\n _this34._setListeners();\n\n return _this34;\n } // Getters\n\n\n _createClass(Tooltip, [{\n key: \"enable\",\n value: // Public\n function enable() {\n this._isEnabled = true;\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this._isEnabled = false;\n }\n }, {\n key: \"toggleEnabled\",\n value: function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$2)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this.tip) {\n this.tip.remove();\n }\n\n this._disposePopper();\n\n _get(_getPrototypeOf(Tooltip.prototype), \"dispose\", this).call(this);\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this35 = this;\n\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this.isWithContent() && this._isEnabled)) {\n return;\n }\n\n var showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW);\n var shadowRoot = findShadowRoot(this._element);\n var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n } // A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`\n // This will be removed later in favor of a `setContent` method\n\n\n if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) {\n this._disposePopper();\n\n this.tip.remove();\n this.tip = null;\n }\n\n var tip = this.getTipElement();\n var tipId = getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n\n this._element.setAttribute('aria-describedby', tipId);\n\n if (this._config.animation) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n\n var placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this._addAttachmentClass(attachment);\n\n var container = this._config.container;\n Data.set(tip, this.constructor.DATA_KEY, this);\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED);\n }\n\n if (this._popper) {\n this._popper.update();\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n var customClass = this._resolvePossibleFunction(this._config.customClass);\n\n if (customClass) {\n var _tip$classList;\n\n (_tip$classList = tip.classList).add.apply(_tip$classList, _toConsumableArray(customClass.split(' ')));\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref9;\n\n (_ref9 = []).concat.apply(_ref9, _toConsumableArray(document.body.children)).forEach(function (element) {\n EventHandler.on(element, 'mouseover', noop);\n });\n }\n\n var complete = function complete() {\n var prevHoverState = _this35._hoverState;\n _this35._hoverState = null;\n EventHandler.trigger(_this35._element, _this35.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n _this35._leave(null, _this35);\n }\n };\n\n var isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2);\n\n this._queueCallback(complete, this.tip, isAnimated);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this36 = this;\n\n if (!this._popper) {\n return;\n }\n\n var tip = this.getTipElement();\n\n var complete = function complete() {\n if (_this36._isWithActiveTrigger()) {\n return;\n }\n\n if (_this36._hoverState !== HOVER_STATE_SHOW) {\n tip.remove();\n }\n\n _this36._cleanTipClass();\n\n _this36._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(_this36._element, _this36.constructor.Event.HIDDEN);\n\n _this36._disposePopper();\n };\n\n var hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n var _ref10;\n\n (_ref10 = []).concat.apply(_ref10, _toConsumableArray(document.body.children)).forEach(function (element) {\n return EventHandler.off(element, 'mouseover', noop);\n });\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n var isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2);\n\n this._queueCallback(complete, this.tip, isAnimated);\n\n this._hoverState = '';\n }\n }, {\n key: \"update\",\n value: function update() {\n if (this._popper !== null) {\n this._popper.update();\n }\n } // Protected\n\n }, {\n key: \"isWithContent\",\n value: function isWithContent() {\n return Boolean(this.getTitle());\n }\n }, {\n key: \"getTipElement\",\n value: function getTipElement() {\n if (this.tip) {\n return this.tip;\n }\n\n var element = document.createElement('div');\n element.innerHTML = this._config.template;\n var tip = element.children[0];\n this.setContent(tip);\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n this.tip = tip;\n return this.tip;\n }\n }, {\n key: \"setContent\",\n value: function setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER);\n }\n }, {\n key: \"_sanitizeAndSetContent\",\n value: function _sanitizeAndSetContent(template, content, selector) {\n var templateElement = SelectorEngine.findOne(selector, template);\n\n if (!content && templateElement) {\n templateElement.remove();\n return;\n } // we use append for html objects to maintain js events\n\n\n this.setElementContent(templateElement, content);\n }\n }, {\n key: \"setElementContent\",\n value: function setElementContent(element, content) {\n if (element === null) {\n return;\n }\n\n if (isElement(content)) {\n content = getElement(content); // content is a DOM node or a jQuery\n\n if (this._config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = '';\n element.append(content);\n }\n } else {\n element.textContent = content.textContent;\n }\n\n return;\n }\n\n if (this._config.html) {\n if (this._config.sanitize) {\n content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);\n }\n\n element.innerHTML = content;\n } else {\n element.textContent = content;\n }\n }\n }, {\n key: \"getTitle\",\n value: function getTitle() {\n var title = this._element.getAttribute('data-bs-original-title') || this._config.title;\n\n return this._resolvePossibleFunction(title);\n }\n }, {\n key: \"updateAttachment\",\n value: function updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end';\n }\n\n if (attachment === 'left') {\n return 'start';\n }\n\n return attachment;\n } // Private\n\n }, {\n key: \"_initializeOnDelegatedTarget\",\n value: function _initializeOnDelegatedTarget(event, context) {\n return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n }, {\n key: \"_getOffset\",\n value: function _getOffset() {\n var _this37 = this;\n\n var offset = this._config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this37._element);\n };\n }\n\n return offset;\n }\n }, {\n key: \"_resolvePossibleFunction\",\n value: function _resolvePossibleFunction(content) {\n return typeof content === 'function' ? content.call(this._element) : content;\n }\n }, {\n key: \"_getPopperConfig\",\n value: function _getPopperConfig(attachment) {\n var _this38 = this;\n\n var defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: \".\".concat(this.constructor.NAME, \"-arrow\")\n }\n }, {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: function fn(data) {\n return _this38._handlePopperPlacementChange(data);\n }\n }],\n onFirstUpdate: function onFirstUpdate(data) {\n if (data.options.placement !== data.placement) {\n _this38._handlePopperPlacementChange(data);\n }\n }\n };\n return _objectSpread(_objectSpread({}, defaultBsPopperConfig), typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n }\n }, {\n key: \"_addAttachmentClass\",\n value: function _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(\"\".concat(this._getBasicClassPrefix(), \"-\").concat(this.updateAttachment(attachment)));\n }\n }, {\n key: \"_getAttachment\",\n value: function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n }\n }, {\n key: \"_setListeners\",\n value: function _setListeners() {\n var _this39 = this;\n\n var triggers = this._config.trigger.split(' ');\n\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n EventHandler.on(_this39._element, _this39.constructor.Event.CLICK, _this39._config.selector, function (event) {\n return _this39.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this39.constructor.Event.MOUSEENTER : _this39.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this39.constructor.Event.MOUSELEAVE : _this39.constructor.Event.FOCUSOUT;\n EventHandler.on(_this39._element, eventIn, _this39._config.selector, function (event) {\n return _this39._enter(event);\n });\n EventHandler.on(_this39._element, eventOut, _this39._config.selector, function (event) {\n return _this39._leave(event);\n });\n }\n });\n\n this._hideModalHandler = function () {\n if (_this39._element) {\n _this39.hide();\n }\n };\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this._config.selector) {\n this._config = _objectSpread(_objectSpread({}, this._config), {}, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n }\n }, {\n key: \"_fixTitle\",\n value: function _fixTitle() {\n var title = this._element.getAttribute('title');\n\n var originalTitleType = _typeof(this._element.getAttribute('data-bs-original-title'));\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '');\n\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('title', '');\n }\n }\n }, {\n key: \"_enter\",\n value: function _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$2) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context._config.delay || !context._config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context._config.delay.show);\n }\n }, {\n key: \"_leave\",\n value: function _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context._config.delay || !context._config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context._config.delay.hide);\n }\n }, {\n key: \"_isWithActiveTrigger\",\n value: function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n var dataAttributes = Manipulator.getDataAttributes(this._element);\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr];\n }\n });\n config = _objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), dataAttributes), _typeof(config) === 'object' && config ? config : {});\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);\n }\n\n return config;\n }\n }, {\n key: \"_getDelegateConfig\",\n value: function _getDelegateConfig() {\n var config = {};\n\n for (var key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n } // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n\n\n return config;\n }\n }, {\n key: \"_cleanTipClass\",\n value: function _cleanTipClass() {\n var tip = this.getTipElement();\n var basicClassPrefixRegex = new RegExp(\"(^|\\\\s)\".concat(this._getBasicClassPrefix(), \"\\\\S+\"), 'g');\n var tabClass = tip.getAttribute('class').match(basicClassPrefixRegex);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(function (token) {\n return token.trim();\n }).forEach(function (tClass) {\n return tip.classList.remove(tClass);\n });\n }\n }\n }, {\n key: \"_getBasicClassPrefix\",\n value: function _getBasicClassPrefix() {\n return CLASS_PREFIX$1;\n }\n }, {\n key: \"_handlePopperPlacementChange\",\n value: function _handlePopperPlacementChange(popperData) {\n var state = popperData.state;\n\n if (!state) {\n return;\n }\n\n this.tip = state.elements.popper;\n\n this._cleanTipClass();\n\n this._addAttachmentClass(this._getAttachment(state.placement));\n }\n }, {\n key: \"_disposePopper\",\n value: function _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n } // Static\n\n }], [{\n key: \"Default\",\n get: function get() {\n return Default$3;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$4;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$2;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$3;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n });\n }\n }]);\n\n return Tooltip;\n}(BaseComponent);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\n\ndefineJQueryPlugin(Tooltip);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar NAME$3 = 'popover';\nvar DATA_KEY$3 = 'bs.popover';\nvar EVENT_KEY$3 = \".\".concat(DATA_KEY$3);\nvar CLASS_PREFIX = 'bs-popover';\n\nvar Default$2 = _objectSpread(_objectSpread({}, Tooltip.Default), {}, {\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '
    ' + '
    ' + '

    ' + '
    ' + '
    '\n});\n\nvar DefaultType$2 = _objectSpread(_objectSpread({}, Tooltip.DefaultType), {}, {\n content: '(string|element|function)'\n});\n\nvar Event$1 = {\n HIDE: \"hide\".concat(EVENT_KEY$3),\n HIDDEN: \"hidden\".concat(EVENT_KEY$3),\n SHOW: \"show\".concat(EVENT_KEY$3),\n SHOWN: \"shown\".concat(EVENT_KEY$3),\n INSERTED: \"inserted\".concat(EVENT_KEY$3),\n CLICK: \"click\".concat(EVENT_KEY$3),\n FOCUSIN: \"focusin\".concat(EVENT_KEY$3),\n FOCUSOUT: \"focusout\".concat(EVENT_KEY$3),\n MOUSEENTER: \"mouseenter\".concat(EVENT_KEY$3),\n MOUSELEAVE: \"mouseleave\".concat(EVENT_KEY$3)\n};\nvar SELECTOR_TITLE = '.popover-header';\nvar SELECTOR_CONTENT = '.popover-body';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar Popover = /*#__PURE__*/function (_Tooltip) {\n _inherits(Popover, _Tooltip);\n\n var _super9 = _createSuper(Popover);\n\n function Popover() {\n _classCallCheck(this, Popover);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(Popover, [{\n key: \"isWithContent\",\n value: // Overrides\n function isWithContent() {\n return this.getTitle() || this._getContent();\n }\n }, {\n key: \"setContent\",\n value: function setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE);\n\n this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT);\n } // Private\n\n }, {\n key: \"_getContent\",\n value: function _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n }, {\n key: \"_getBasicClassPrefix\",\n value: function _getBasicClassPrefix() {\n return CLASS_PREFIX;\n } // Static\n\n }], [{\n key: \"Default\",\n get: // Getters\n function get() {\n return Default$2;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$3;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$1;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$2;\n }\n }, {\n key: \"jQueryInterface\",\n value: function jQueryInterface(config) {\n return this.each(function () {\n var data = Popover.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n });\n }\n }]);\n\n return Popover;\n}(Tooltip);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\n\ndefineJQueryPlugin(Popover);\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nvar NAME$2 = 'scrollspy';\nvar DATA_KEY$2 = 'bs.scrollspy';\nvar EVENT_KEY$2 = \".\".concat(DATA_KEY$2);\nvar DATA_API_KEY$1 = '.data-api';\nvar Default$1 = {\n offset: 10,\n method: 'auto',\n target: ''\n};\nvar DefaultType$1 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n};\nvar EVENT_ACTIVATE = \"activate\".concat(EVENT_KEY$2);\nvar EVENT_SCROLL = \"scroll\".concat(EVENT_KEY$2);\nvar EVENT_LOAD_DATA_API = \"load\".concat(EVENT_KEY$2).concat(DATA_API_KEY$1);\nvar CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nvar CLASS_NAME_ACTIVE$1 = 'active';\nvar SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nvar SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\nvar SELECTOR_NAV_LINKS = '.nav-link';\nvar SELECTOR_NAV_ITEMS = '.nav-item';\nvar SELECTOR_LIST_ITEMS = '.list-group-item';\nvar SELECTOR_LINK_ITEMS = \"\".concat(SELECTOR_NAV_LINKS, \", \").concat(SELECTOR_LIST_ITEMS, \", .\").concat(CLASS_NAME_DROPDOWN_ITEM);\nvar SELECTOR_DROPDOWN$1 = '.dropdown';\nvar SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nvar METHOD_OFFSET = 'offset';\nvar METHOD_POSITION = 'position';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nvar ScrollSpy = /*#__PURE__*/function (_BaseComponent9) {\n _inherits(ScrollSpy, _BaseComponent9);\n\n var _super10 = _createSuper(ScrollSpy);\n\n function ScrollSpy(element, config) {\n var _this40;\n\n _classCallCheck(this, ScrollSpy);\n\n _this40 = _super10.call(this, element);\n _this40._scrollElement = _this40._element.tagName === 'BODY' ? window : _this40._element;\n _this40._config = _this40._getConfig(config);\n _this40._offsets = [];\n _this40._targets = [];\n _this40._activeTarget = null;\n _this40._scrollHeight = 0;\n EventHandler.on(_this40._scrollElement, EVENT_SCROLL, function () {\n return _this40._process();\n });\n\n _this40.refresh();\n\n _this40._process();\n\n return _this40;\n } // Getters\n\n\n _createClass(ScrollSpy, [{\n key: \"refresh\",\n value: // Public\n function refresh() {\n var _this41 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target);\n targets.map(function (element) {\n var targetSelector = getSelectorFromElement(element);\n var target = targetSelector ? SelectorEngine.findOne(targetSelector) : null;\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this41._offsets.push(item[0]);\n\n _this41._targets.push(item[1]);\n });\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n EventHandler.off(this._scrollElement, EVENT_KEY$2);\n\n _get(_getPrototypeOf(ScrollSpy.prototype), \"dispose\", this).call(this);\n } // Private\n\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default$1), Manipulator.getDataAttributes(this._element)), _typeof(config) === 'object' && config ? config : {});\n config.target = getElement(config.target) || document.documentElement;\n typeCheckConfig(NAME$2, config, DefaultType$1);\n return config;\n }\n }, {\n key: \"_getScrollTop\",\n value: function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n }\n }, {\n key: \"_getScrollHeight\",\n value: function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }\n }, {\n key: \"_getOffsetHeight\",\n value: function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n }\n }, {\n key: \"_process\",\n value: function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n }\n }, {\n key: \"_activate\",\n value: function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = SELECTOR_LINK_ITEMS.split(',').map(function (selector) {\n return \"\".concat(selector, \"[data-bs-target=\\\"\").concat(target, \"\\\"],\").concat(selector, \"[href=\\\"\").concat(target, \"\\\"]\");\n });\n var link = SelectorEngine.findOne(queries.join(','), this._config.target);\n link.classList.add(CLASS_NAME_ACTIVE$1);\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1);\n } else {\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(function (listGroup) {\n // Set triggered links parents as active\n // With both