mdb-ui-kit/js/mdb.min.js.map
Adam Jakubowski df888936a2 1.0.0-alpha2
2020-12-29 14:06:54 +01:00

1 line
629 KiB
Plaintext

{"version":3,"sources":["webpack://mdb/webpack/universalModuleDefinition","webpack://mdb/webpack/bootstrap","webpack://mdb/./node_modules/core-js/internals/fails.js","webpack://mdb/./node_modules/core-js/internals/export.js","webpack://mdb/./node_modules/core-js/internals/well-known-symbol.js","webpack://mdb/./node_modules/core-js/modules/es.array.for-each.js","webpack://mdb/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://mdb/./node_modules/core-js/modules/es.object.keys.js","webpack://mdb/./node_modules/core-js/modules/es.object.to-string.js","webpack://mdb/./node_modules/core-js/modules/es.symbol.js","webpack://mdb/./node_modules/core-js/internals/global.js","webpack://mdb/./node_modules/core-js/modules/es.regexp.exec.js","webpack://mdb/./node_modules/core-js/modules/es.array.filter.js","webpack://mdb/./node_modules/core-js/internals/descriptors.js","webpack://mdb/./node_modules/core-js/modules/es.array.iterator.js","webpack://mdb/./node_modules/core-js/modules/es.string.iterator.js","webpack://mdb/./node_modules/core-js/internals/is-object.js","webpack://mdb/./node_modules/core-js/internals/has.js","webpack://mdb/./node_modules/core-js/internals/an-object.js","webpack://mdb/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://mdb/./node_modules/core-js/modules/es.symbol.description.js","webpack://mdb/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://mdb/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://mdb/./node_modules/core-js/internals/object-define-property.js","webpack://mdb/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://mdb/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://mdb/./node_modules/core-js/modules/es.array.concat.js","webpack://mdb/./node_modules/core-js/internals/to-indexed-object.js","webpack://mdb/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://mdb/./node_modules/core-js/modules/es.array.find.js","webpack://mdb/./node_modules/core-js/internals/to-object.js","webpack://mdb/./node_modules/core-js/modules/es.array.from.js","webpack://mdb/./node_modules/core-js/modules/es.array.slice.js","webpack://mdb/./node_modules/core-js/internals/require-object-coercible.js","webpack://mdb/./node_modules/core-js/internals/redefine.js","webpack://mdb/./node_modules/core-js/internals/to-length.js","webpack://mdb/./node_modules/core-js/modules/es.function.name.js","webpack://mdb/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://mdb/./node_modules/core-js/modules/es.array.index-of.js","webpack://mdb/./node_modules/core-js/modules/es.string.replace.js","webpack://mdb/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://mdb/./node_modules/core-js/internals/classof-raw.js","webpack://mdb/./node_modules/core-js/internals/get-built-in.js","webpack://mdb/./node_modules/core-js/internals/array-method-uses-to-length.js","webpack://mdb/./node_modules/core-js/modules/es.string.match.js","webpack://mdb/./node_modules/core-js/modules/es.string.split.js","webpack://mdb/./node_modules/popper.js/dist/esm/popper.js","webpack://mdb/./node_modules/core-js/internals/create-property-descriptor.js","webpack://mdb/./node_modules/core-js/internals/to-primitive.js","webpack://mdb/./node_modules/core-js/internals/internal-state.js","webpack://mdb/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://mdb/./node_modules/core-js/internals/to-integer.js","webpack://mdb/./node_modules/core-js/internals/array-iteration.js","webpack://mdb/./node_modules/core-js/internals/object-create.js","webpack://mdb/./node_modules/core-js/internals/iterators.js","webpack://mdb/./node_modules/core-js/modules/es.array.map.js","webpack://mdb/./node_modules/core-js/internals/indexed-object.js","webpack://mdb/./node_modules/core-js/internals/shared-key.js","webpack://mdb/./node_modules/core-js/internals/is-pure.js","webpack://mdb/./node_modules/core-js/internals/hidden-keys.js","webpack://mdb/./node_modules/core-js/internals/is-array.js","webpack://mdb/./node_modules/core-js/internals/create-property.js","webpack://mdb/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://mdb/./node_modules/core-js/internals/a-function.js","webpack://mdb/./node_modules/core-js/internals/object-keys.js","webpack://mdb/./node_modules/core-js/internals/regexp-exec.js","webpack://mdb/./node_modules/core-js/modules/es.string.trim.js","webpack://mdb/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://mdb/./node_modules/core-js/internals/set-global.js","webpack://mdb/./node_modules/core-js/internals/shared.js","webpack://mdb/./node_modules/core-js/internals/uid.js","webpack://mdb/./node_modules/core-js/internals/enum-bug-keys.js","webpack://mdb/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://mdb/./node_modules/core-js/internals/is-forced.js","webpack://mdb/./node_modules/core-js/internals/native-symbol.js","webpack://mdb/./node_modules/core-js/internals/array-method-is-strict.js","webpack://mdb/./node_modules/core-js/internals/to-string-tag-support.js","webpack://mdb/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://mdb/./node_modules/core-js/internals/regexp-flags.js","webpack://mdb/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://mdb/./node_modules/core-js/internals/advance-string-index.js","webpack://mdb/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://mdb/./node_modules/core-js/internals/set-to-string-tag.js","webpack://mdb/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://mdb/./node_modules/core-js/modules/es.number.constructor.js","webpack://mdb/(webpack)/buildin/global.js","webpack://mdb/./node_modules/core-js/internals/ie8-dom-define.js","webpack://mdb/./node_modules/core-js/internals/document-create-element.js","webpack://mdb/./node_modules/core-js/internals/inspect-source.js","webpack://mdb/./node_modules/core-js/internals/shared-store.js","webpack://mdb/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://mdb/./node_modules/core-js/internals/own-keys.js","webpack://mdb/./node_modules/core-js/internals/path.js","webpack://mdb/./node_modules/core-js/internals/object-keys-internal.js","webpack://mdb/./node_modules/core-js/internals/array-includes.js","webpack://mdb/./node_modules/core-js/internals/to-absolute-index.js","webpack://mdb/./node_modules/core-js/internals/array-species-create.js","webpack://mdb/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://mdb/./node_modules/core-js/internals/engine-v8-version.js","webpack://mdb/./node_modules/core-js/internals/array-for-each.js","webpack://mdb/./node_modules/core-js/internals/function-bind-context.js","webpack://mdb/./node_modules/core-js/internals/classof.js","webpack://mdb/./node_modules/core-js/internals/inherit-if-required.js","webpack://mdb/./node_modules/core-js/internals/is-regexp.js","webpack://mdb/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://mdb/./node_modules/core-js/internals/string-multibyte.js","webpack://mdb/./node_modules/core-js/internals/string-trim.js","webpack://mdb/./node_modules/core-js/internals/whitespaces.js","webpack://mdb/./node_modules/core-js/internals/dom-iterables.js","webpack://mdb/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://mdb/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://mdb/./node_modules/core-js/internals/add-to-unscopables.js","webpack://mdb/./node_modules/core-js/internals/define-iterator.js","webpack://mdb/./node_modules/core-js/internals/iterators-core.js","webpack://mdb/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://mdb/./node_modules/core-js/modules/es.array.join.js","webpack://mdb/./node_modules/core-js/internals/native-weak-map.js","webpack://mdb/./node_modules/core-js/internals/engine-user-agent.js","webpack://mdb/./node_modules/core-js/internals/object-to-string.js","webpack://mdb/./node_modules/core-js/internals/a-possible-prototype.js","webpack://mdb/./node_modules/core-js/internals/set-species.js","webpack://mdb/./node_modules/core-js/internals/species-constructor.js","webpack://mdb/./node_modules/core-js/internals/string-trim-forced.js","webpack://mdb/./node_modules/core-js/internals/object-define-properties.js","webpack://mdb/./node_modules/core-js/internals/html.js","webpack://mdb/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://mdb/./node_modules/core-js/internals/array-from.js","webpack://mdb/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://mdb/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://mdb/./node_modules/core-js/internals/get-iterator-method.js","webpack://mdb/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://mdb/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://mdb/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://mdb/./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack://mdb/./node_modules/core-js/modules/es.reflect.construct.js","webpack://mdb/./node_modules/core-js/internals/function-bind.js","webpack://mdb/./node_modules/core-js/modules/es.object.assign.js","webpack://mdb/./node_modules/core-js/internals/object-assign.js","webpack://mdb/./node_modules/core-js/modules/es.string.repeat.js","webpack://mdb/./node_modules/core-js/internals/string-repeat.js","webpack://mdb/./src/js/bootstrap/src/util/index.js","webpack://mdb/./src/js/bootstrap/src/dom/data.js","webpack://mdb/./src/js/bootstrap/src/dom/polyfill.js","webpack://mdb/./src/js/bootstrap/src/dom/event-handler.js","webpack://mdb/./src/js/bootstrap/src/alert.js","webpack://mdb/./src/js/bootstrap/src/button.js","webpack://mdb/./src/js/bootstrap/src/dom/manipulator.js","webpack://mdb/./src/js/bootstrap/src/dom/selector-engine.js","webpack://mdb/./src/js/bootstrap/src/carousel.js","webpack://mdb/./src/js/bootstrap/src/collapse.js","webpack://mdb/./src/js/bootstrap/src/dropdown.js","webpack://mdb/./src/js/bootstrap/src/modal.js","webpack://mdb/./src/js/bootstrap/src/util/sanitizer.js","webpack://mdb/./src/js/bootstrap/src/tooltip.js","webpack://mdb/./src/js/bootstrap/src/popover.js","webpack://mdb/./src/js/bootstrap/src/scrollspy.js","webpack://mdb/./src/js/bootstrap/src/tab.js","webpack://mdb/./src/js/bootstrap/src/toast.js","webpack://mdb/./src/js/mdb/util/index.js","webpack://mdb/./src/js/mdb/dom/data.js","webpack://mdb/./src/js/mdb/dom/manipulator.js","webpack://mdb/./src/js/mdb/dom/polyfill.js","webpack://mdb/./src/js/mdb/dom/selector-engine.js","webpack://mdb/./src/js/free/input.js","webpack://mdb/./src/js/mdb/dom/event-handler.js","webpack://mdb/./src/js/free/animate.js","webpack://mdb/./src/js/free/treeview.js","webpack://mdb/./src/js/free/ripple.js"],"names":["root","factory","exports","module","define","amd","this","installedModules","__webpack_require__","m","exec","error","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","options","source","key","targetProperty","sourceProperty","descriptor","TARGET","target","GLOBAL","STATIC","stat","prototype","noTargetGet","value","forced","undefined","sham","shared","has","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","Symbol","createWellKnownSymbol","withoutSetter","name","$","forEach","proto","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","toObject","nativeKeys","fails","keys","it","TO_STRING_TAG_SUPPORT","toString","Object","unsafe","wrap","tag","description","symbol","AllSymbols","nativeObjectCreate","$Symbol","PROTOTYPE","setInternalState","type","SYMBOL","DESCRIPTORS","$defineProperties","O","Properties","anObject","properties","toIndexedObject","objectKeys","concat","$getOwnPropertySymbols","$forEach","$propertyIsEnumerable","call","$defineProperty","$getOwnPropertyDescriptor","P","toPrimitive","ObjectPrototype","ObjectPrototypeSymbols","nativeGetOwnPropertyDescriptor","HIDDEN","enumerable","$getOwnPropertyNames","names","nativeGetOwnPropertyNames","result","hiddenKeys","push","getBuiltIn","IS_PURE","isArray","isObject","createPropertyDescriptor","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertySymbolsModule","getOwnPropertyDescriptorModule","definePropertyModule","propertyIsEnumerableModule","sharedKey","wellKnownSymbol","wrappedWellKnownSymbolModule","defineWellKnownSymbol","setToStringTag","InternalStateModule","TO_PRIMITIVE","set","getInternalState","getterFor","$stringify","nativeDefineProperty","nativePropertyIsEnumerable","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","get","a","Attributes","ObjectPrototypeDescriptor","isSymbol","V","IS_OBJECT_PROTOTYPE","TypeError","arguments","length","String","setter","configurable","string","keyFor","sym","useSetter","useSimple","create","defineProperty","defineProperties","getOwnPropertyNames","getOwnPropertySymbols","stringify","replacer","space","$replacer","args","index","apply","valueOf","Math","check","globalThis","window","self","Function","$filter","filter","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","callbackfn","addToUnscopables","Iterators","defineIterator","ARRAY_ITERATOR","Array","iterated","kind","state","done","Arguments","charAt","STRING_ITERATOR","point","hasOwnProperty","flags","TO_STRING","RegExpPrototype","RegExp","nativeToString","NOT_GENERIC","INCORRECT_NAME","R","p","rf","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","regexp","NativeSymbol","constructor","desc","slice","replace","ArrayIteratorMethods","ITERATOR","TO_STRING_TAG","ArrayValues","values","METHOD_NAME","IE8_DOM_DEFINE","FAILS_ON_PRIMITIVES","ownKeys","createProperty","getOwnPropertyDescriptors","object","toLength","arraySpeciesCreate","V8_VERSION","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","arg","k","len","E","A","n","i","spreadable","isConcatSpreadable","IndexedObject","requireObjectCoercible","$find","find","FIND","SKIPS_HOLES","argument","from","checkCorrectnessOfIteration","iterable","toAbsoluteIndex","ACCESSORS","0","1","SPECIES","nativeSlice","max","start","end","Constructor","fin","inspectSource","enforceInternalState","enforce","TEMPLATE","split","simple","join","toInteger","min","FunctionPrototype","FunctionPrototypeToString","nameRE","match","inheritIfRequired","isRegExp","getFlags","stickyHelpers","setSpecies","MATCH","NativeRegExp","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","indexOf","proxy","$indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","STRICT_METHOD","searchElement","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","res","rx","S","functionalReplace","fullUnicode","unicode","lastIndex","results","accumulatedResult","nextSourcePosition","matched","position","captures","j","replacerArgs","namedCaptures","groups","replacement","str","tailPos","symbols","ch","capture","getSubstitution","aFunction","variable","path","namespace","method","thrower","cache","argument0","argument1","nativeMatch","matcher","matchStr","speciesConstructor","callRegExpExec","regexpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","separator","limit","lim","lastLength","output","ignoreCase","multiline","lastLastIndex","separatorCopy","test","splitter","C","unicodeMatching","q","e","z","isBrowser","document","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","parseInt","getWindowSizes","height","width","classCallCheck","instance","createClass","protoProps","staticProps","props","writable","obj","_extends","assign","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","scrollTop","scrollLeft","rect","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundariesNode","_getWindowSizes","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","isFixed","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","runModifiers","modifiers","data","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","toUpperCase","prefix","toCheck","style","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","removeEventListener","isNumeric","isNaN","isFinite","setStyles","unit","getRoundedOffsets","shouldRound","noRound","v","_data$offsets","round","referenceWidth","popperWidth","isVertical","isVariation","horizontalToInteger","verticalToInteger","isFirefox","isModifierRequired","requestingName","requestedName","_requesting","requested","requesting","isRequired","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","op","mergeWithPrevious","reduce","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","side","shiftOffsets","shiftvariation","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","inner","subtractLength","hide","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","invertTop","invertLeft","offsetParentRect","devicePixelRatio","prefixedProperty","willChange","arrowStyles","applyStyle","setAttribute","removeAttribute","onLoad","modifierOptions","Popper","isDestroyed","isCreated","removeChild","_this","requestAnimationFrame","update","bind","jquery","enableEventListeners","Utils","PopperUtils","bitmap","input","PREFERRED_STRING","val","store","wmget","wmhas","wmset","STATE","NATIVE_WEAK_MAP","objectHas","WeakMap","metadata","TYPE","internalObjectKeys","ceil","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","that","specificCreate","boundFunction","every","EmptyConstructor","scriptTag","content","LT","SCRIPT","activeXDocument","enumBugKeys","documentCreateElement","IE_PROTO","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","display","appendChild","src","contentWindow","open","F","$map","classof","propertyIsEnumerable","propertyKey","foo","Boolean","regexpFlags","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","BROKEN_CARET","NPCG_INCLUDED","reCopy","re","charsAdded","strCopy","$trim","forcedStringTrimMethod","NASHORN_BUG","mode","copyright","id","postfix","random","feature","detection","normalize","POLYFILL","NATIVE","aPossiblePrototype","setPrototypeOf","CORRECT_SETTER","__proto__","dotAll","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","nativeRegExpMethod","methods","stringMethod","regexMethod","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeMethod","arg2","forceStringMethod","TAG","CORRECT_PROTOTYPE_GETTER","getPrototypeOf","toNumber","first","third","radix","maxCode","digits","code","charCodeAt","NaN","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","NumberWrapper","dummy","g","createElement","EXISTS","functionToString","SHARED","IS_INCLUDES","fromIndex","includes","integer","originalArray","iterator","process","versions","v8","c","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","Wrapper","NewTarget","NewTargetPrototype","RE","s","CONVERT_TO_STRING","pos","second","size","codeAt","ltrim","rtrim","whitespace","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","NAME","UNSCOPABLES","ArrayPrototype","returnThis","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","VALUES","ENTRIES","Iterable","IteratorConstructor","next","DEFAULT","IS_SET","FORCED","getIterationMethod","KIND","defaultIterator","IterablePrototype","CurrentIteratorPrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","PrototypeOfArrayIteratorPrototype","arrayIterator","nativeJoin","ES3_STRINGS","CONSTRUCTOR_NAME","defaultConstructor","whitespaces","windowNames","getWindowNames","callWithSafeIterationClosing","isArrayIteratorMethod","getIteratorMethod","arrayLike","argumentsLength","mapfn","mapping","iteratorMethod","returnMethod","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","nativeGetPrototypeOf","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","construct","Target","newTarget","$args","factories","partArgs","argsLength","list","nativeAssign","B","alphabet","chr","T","repeat","count","Infinity","RangeError","getUID","getElementById","getSelector","hrefAttr","selector","getAttribute","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","TRANSITION_END","isElement","emulateTransitionEnd","duration","emulatedDuration","listener","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","Error","isVisible","elementStyle","parentNodeStyle","visibility","noop","reflow","getjQuery","jQuery","hasAttribute","storeData","getSelectorFromElement","mapData","keyProperties","delete","Data","setData","getData","removeData","Element","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","preventDefault","defaultPrevented","scopeSelectorRegex","_","hasId","nodeList","matches","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","getEvent","findHandler","events","handler","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","addHandler","oneOff","handlers","previousFn","domElements","EventHandler","off","removeHandler","on","one","inNamespace","isNamespace","elementEvent","storeElementEvent","handlerKey","keyHandlers","trigger","jQueryEvent","isNative","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","DATA_KEY","EVENT_KEY","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","Alert","_element","each","alertInstance","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","closest","classList","remove","_destroyElement","handleDismiss","JQUERY_NO_CONFLICT","jQueryInterface","noConflict","SELECTOR_DATA_TOGGLE","Button","toggle","button","normalizeData","Number","normalizeDataKey","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","dataset","getDataAttribute","offsetTop","offsetLeft","toggleClass","className","add","SelectorEngine","findFn","child","parents","ancestor","ELEMENT_NODE","prev","previous","previousElementSibling","DATA_API_KEY","Default","interval","keyboard","slide","pause","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","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","CLASS_NAME_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_INDICATORS","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","action","to","ride","cycle","carouselInterface","slideIndex","_slide","hidden","clearInterval","setInterval","visibilityState","nextWhenVisible","activeIndex","_getItemIndex","direction","absDeltax","abs","_keydown","_addTouchEventListeners","pointerType","clientX","touches","_handleSwipe","clearTimeout","itemImg","tagName","activeElement","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","relatedTarget","eventDirectionName","targetIndex","indicators","nextIndicator","directionalClassName","orderClassName","nextElementInterval","activeElementIndex","nextElement","_getItemByDirection","nextElementIndex","isCycling","_triggerSlideEvent","_setActiveIndicatorElement","defaultInterval","dataApiClickHandler","carousels","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","collapseInterface","show","actives","dimension","capitalizedDimension","scrollSize","container","activesData","tempActiveData","elemActive","_getDimension","setTransitioning","triggerArrayLength","isTransitioning","selected","triggerArray","isOpen","triggerData","ESCAPE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_MENURIGHT","SELECTOR_MENU","boundary","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","dropdownInterface","toggles","dropdownMenu","getParentFromElement","context","clickEvent","destroy","stopPropagation","disabled","items","isActive","focus","clearMenus","referenceElement","_getPopperConfig","parentDropdown","_getPlacement","_getOffset","dataApiKeydownHandler","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","modalBody","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","callbackRemove","backdropTransitionDuration","animate","currentTarget","_removeBackdrop","modalTransitionDuration","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultWhitelist","br","col","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","elName","attributeList","whitelistedAttributes","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","HOVER_STATE_SHOW","TRIGGER_HOVER","TRIGGER_FOCUS","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","textContent","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","maxScroll","_getOffsetHeight","_activate","_clear","queries","link","listGroup","navItem","spy","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","listElement","itemSelector","hideEvent","_transitionComplete","active","dropdownChild","dropdown","CLASS_NAME_SHOWING","autohide","Toast","addClass","addStyle","findElements","findElement","CLASSNAME_WRAPPER","OUTLINE_INPUT","OUTLINE_TEXTAREA","Input","_label","_labelWidth","_labelMarginLeft","_notchLeading","_notchMiddle","_notchTrailing","_applyActiveClass","_removeActiveClass","_getLabelData","_applyDivs","_applyNotch","_getLabelWidth","_getLabelPositionInInputGroup","notchWrapper","append","applyActiveClass","removeActiveClass","init","showOnLoad","onStart","onEnd","onHide","onShow","animateOnScroll","windowHeight","reset","Animate","_animateElement","_getAnimateElement","_isFirstScroll","_repeatAnimateOnScroll","_options","_init","_bindHoverEvents","_startAnimation","_bindScrollEvents","_bindClickEvents","_bindTriggerOnEndCallback","_bindResetAnimationAfterFinish","targetId","elementOffsetTop","elementHeight","shouldBeVisible","isElementVisible","_hideAnimateElement","_callback","_showAnimateElement","_clearAnimationClass","_addAnimatedClass","_setAnimationRepeat","_setAnimationReverse","_setAnimationDelay","_setAnimationDuration","_setAnimationInterval","animationIterationCount","animationDirection","animationDuration","animationDelay","_animateOnScroll","autoInit","CLASSNAME_TREEVIEW","Treeview","_data","_createHTMLNodes","_setData","_constructTreeview","_toggleSubmenu","_toggleIcon","faClasses","current","icon1","icon2","innerText","toggleSubmenu","CLASSNAME_RIPPLE","SELECTOR_COMPONENT","CLASSNAME_UNBOUND","DEFAULT_RIPPLE_COLOR","BOOTSTRAP_COLORS","rippleCentered","rippleColor","rippleDuration","rippleRadius","rippleUnbound","Ripple","_autoInit","_method","_addClickEvent","_createRipple","offsetX","layerX","offsetY","layerY","_durationToMsNumber","diameterOptions","diameter","_getDiameter","radiusValue","opacity","rippleHTML","_createHTMLRipple","wrapper","ripple","_removeHTMLRipple","_removeOldColorClasses","_addColor","_toggleUnbound","_appendRipple","time","pythagorean","sqrt","positionCenter","quadrant","getCorner","topLeft","topRight","bottomLeft","bottomRight","rgbValue","gradientImage","color","_colorToRGB","backgroundImage","REGEXP_CLASS_COLOR","substr","tempElem","flag","slector","autoInitial","d","getter","o","r","toStringTag","t","__esModule","ns","moduleId","l","modules"],"mappings":"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","file":"js/mdb.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"mdb\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mdb\"] = factory();\n\telse\n\t\troot[\"mdb\"] = factory();\n})(this, function() {\nreturn "," \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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 139);\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar 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\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","module.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = false;\n","module.exports = {};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): util/index.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst MAX_UID = 1000000;\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\nconst TRANSITION_END = 'transitionend';\r\n\r\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\r\nconst toType = (obj) => {\r\n if (obj === null || obj === undefined) {\r\n return `${obj}`;\r\n }\r\n\r\n return {}.toString\r\n .call(obj)\r\n .match(/\\s([a-z]+)/i)[1]\r\n .toLowerCase();\r\n};\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Public Util Api\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst getUID = (prefix) => {\r\n do {\r\n prefix += Math.floor(Math.random() * MAX_UID);\r\n } while (document.getElementById(prefix));\r\n\r\n return prefix;\r\n};\r\n\r\nconst getSelector = (element) => {\r\n let selector = element.getAttribute('data-target');\r\n\r\n if (!selector || selector === '#') {\r\n const hrefAttr = element.getAttribute('href');\r\n\r\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\r\n }\r\n\r\n return selector;\r\n};\r\n\r\nconst getSelectorFromElement = (element) => {\r\n const selector = getSelector(element);\r\n\r\n if (selector) {\r\n return document.querySelector(selector) ? selector : null;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getElementFromSelector = (element) => {\r\n const selector = getSelector(element);\r\n\r\n return selector ? document.querySelector(selector) : null;\r\n};\r\n\r\nconst getTransitionDurationFromElement = (element) => {\r\n if (!element) {\r\n return 0;\r\n }\r\n\r\n // Get transition-duration of the element\r\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element);\r\n\r\n const floatTransitionDuration = parseFloat(transitionDuration);\r\n const floatTransitionDelay = parseFloat(transitionDelay);\r\n\r\n // Return 0 if element or transition duration is not found\r\n if (!floatTransitionDuration && !floatTransitionDelay) {\r\n return 0;\r\n }\r\n\r\n // If multiple durations are defined, take the first\r\n transitionDuration = transitionDuration.split(',')[0];\r\n transitionDelay = transitionDelay.split(',')[0];\r\n\r\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\r\n};\r\n\r\nconst triggerTransitionEnd = (element) => {\r\n element.dispatchEvent(new Event(TRANSITION_END));\r\n};\r\n\r\nconst isElement = (obj) => (obj[0] || obj).nodeType;\r\n\r\nconst emulateTransitionEnd = (element, duration) => {\r\n let called = false;\r\n const durationPadding = 5;\r\n const emulatedDuration = duration + durationPadding;\r\n function listener() {\r\n called = true;\r\n element.removeEventListener(TRANSITION_END, listener);\r\n }\r\n\r\n element.addEventListener(TRANSITION_END, listener);\r\n setTimeout(() => {\r\n if (!called) {\r\n triggerTransitionEnd(element);\r\n }\r\n }, emulatedDuration);\r\n};\r\n\r\nconst typeCheckConfig = (componentName, config, configTypes) => {\r\n Object.keys(configTypes).forEach((property) => {\r\n const expectedTypes = configTypes[property];\r\n const value = config[property];\r\n const valueType = value && isElement(value) ? 'element' : toType(value);\r\n\r\n if (!new RegExp(expectedTypes).test(valueType)) {\r\n throw new Error(\r\n `${componentName.toUpperCase()}: ` +\r\n `Option \"${property}\" provided type \"${valueType}\" ` +\r\n `but expected type \"${expectedTypes}\".`\r\n );\r\n }\r\n });\r\n};\r\n\r\nconst isVisible = (element) => {\r\n if (!element) {\r\n return false;\r\n }\r\n\r\n if (element.style && element.parentNode && element.parentNode.style) {\r\n const elementStyle = getComputedStyle(element);\r\n const parentNodeStyle = getComputedStyle(element.parentNode);\r\n\r\n return (\r\n elementStyle.display !== 'none' &&\r\n parentNodeStyle.display !== 'none' &&\r\n elementStyle.visibility !== 'hidden'\r\n );\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst findShadowRoot = (element) => {\r\n if (!document.documentElement.attachShadow) {\r\n return null;\r\n }\r\n\r\n // Can find the shadow root otherwise it'll return the document\r\n if (typeof element.getRootNode === 'function') {\r\n const root = element.getRootNode();\r\n return root instanceof ShadowRoot ? root : null;\r\n }\r\n\r\n if (element instanceof ShadowRoot) {\r\n return element;\r\n }\r\n\r\n // when we don't find a shadow root\r\n if (!element.parentNode) {\r\n return null;\r\n }\r\n\r\n return findShadowRoot(element.parentNode);\r\n};\r\n\r\nconst noop = () => function () {};\r\n\r\nconst reflow = (element) => element.offsetHeight;\r\n\r\nconst getjQuery = () => {\r\n const { jQuery } = window;\r\n\r\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\r\n return jQuery;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport {\r\n getjQuery,\r\n TRANSITION_END,\r\n getUID,\r\n getSelectorFromElement,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n triggerTransitionEnd,\r\n isElement,\r\n emulateTransitionEnd,\r\n typeCheckConfig,\r\n isVisible,\r\n findShadowRoot,\r\n noop,\r\n reflow,\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst mapData = (() => {\r\n const storeData = {};\r\n let id = 1;\r\n return {\r\n set(element, key, data) {\r\n if (typeof element.key === 'undefined') {\r\n element.key = {\r\n key,\r\n id,\r\n };\r\n id++;\r\n }\r\n\r\n storeData[element.key.id] = data;\r\n },\r\n get(element, key) {\r\n if (!element || typeof element.key === 'undefined') {\r\n return null;\r\n }\r\n\r\n const keyProperties = element.key;\r\n if (keyProperties.key === key) {\r\n return storeData[keyProperties.id];\r\n }\r\n\r\n return null;\r\n },\r\n delete(element, key) {\r\n if (typeof element.key === 'undefined') {\r\n return;\r\n }\r\n\r\n const keyProperties = element.key;\r\n if (keyProperties.key === key) {\r\n delete storeData[keyProperties.id];\r\n delete element.key;\r\n }\r\n },\r\n };\r\n})();\r\n\r\nconst Data = {\r\n setData(instance, key, data) {\r\n mapData.set(instance, key, data);\r\n },\r\n getData(instance, key) {\r\n return mapData.get(instance, key);\r\n },\r\n removeData(instance, key) {\r\n mapData.delete(instance, key);\r\n },\r\n};\r\n\r\nexport default Data;\r\n","/* istanbul ignore file */\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/polyfill.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getUID } from '../util/index';\r\n\r\nlet find = Element.prototype.querySelectorAll;\r\nlet findOne = Element.prototype.querySelector;\r\n\r\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\r\nconst defaultPreventedPreservedOnDispatch = (() => {\r\n const e = new CustomEvent('Bootstrap', {\r\n cancelable: true,\r\n });\r\n\r\n const element = document.createElement('div');\r\n element.addEventListener('Bootstrap', () => null);\r\n\r\n e.preventDefault();\r\n element.dispatchEvent(e);\r\n return e.defaultPrevented;\r\n})();\r\n\r\nconst scopeSelectorRegex = /:scope\\b/;\r\nconst supportScopeQuery = (() => {\r\n const element = document.createElement('div');\r\n\r\n try {\r\n element.querySelectorAll(':scope *');\r\n } catch (_) {\r\n return false;\r\n }\r\n\r\n return true;\r\n})();\r\n\r\nif (!supportScopeQuery) {\r\n find = function (selector) {\r\n if (!scopeSelectorRegex.test(selector)) {\r\n return this.querySelectorAll(selector);\r\n }\r\n\r\n const hasId = Boolean(this.id);\r\n\r\n if (!hasId) {\r\n this.id = getUID('scope');\r\n }\r\n\r\n let nodeList = null;\r\n try {\r\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`);\r\n nodeList = this.querySelectorAll(selector);\r\n } finally {\r\n if (!hasId) {\r\n this.removeAttribute('id');\r\n }\r\n }\r\n\r\n return nodeList;\r\n };\r\n\r\n findOne = function (selector) {\r\n if (!scopeSelectorRegex.test(selector)) {\r\n return this.querySelector(selector);\r\n }\r\n\r\n const matches = find.call(this, selector);\r\n\r\n if (typeof matches[0] !== 'undefined') {\r\n return matches[0];\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n\r\nexport { find, findOne, defaultPreventedPreservedOnDispatch };\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/event-handler.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getjQuery } from '../util/index';\r\nimport { defaultPreventedPreservedOnDispatch } from './polyfill';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst $ = getjQuery();\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\r\nconst stripNameRegex = /\\..*/;\r\nconst stripUidRegex = /::\\d+$/;\r\nconst eventRegistry = {}; // Events storage\r\nlet uidEvent = 1;\r\nconst customEvents = {\r\n mouseenter: 'mouseover',\r\n mouseleave: 'mouseout',\r\n};\r\nconst nativeEvents = [\r\n 'click',\r\n 'dblclick',\r\n 'mouseup',\r\n 'mousedown',\r\n 'contextmenu',\r\n 'mousewheel',\r\n 'DOMMouseScroll',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'selectstart',\r\n 'selectend',\r\n 'keydown',\r\n 'keypress',\r\n 'keyup',\r\n 'orientationchange',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchend',\r\n 'touchcancel',\r\n 'pointerdown',\r\n 'pointermove',\r\n 'pointerup',\r\n 'pointerleave',\r\n 'pointercancel',\r\n 'gesturestart',\r\n 'gesturechange',\r\n 'gestureend',\r\n 'focus',\r\n 'blur',\r\n 'change',\r\n 'reset',\r\n 'select',\r\n 'submit',\r\n 'focusin',\r\n 'focusout',\r\n 'load',\r\n 'unload',\r\n 'beforeunload',\r\n 'resize',\r\n 'move',\r\n 'DOMContentLoaded',\r\n 'readystatechange',\r\n 'error',\r\n 'abort',\r\n 'scroll',\r\n];\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Private methods\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nfunction getUidEvent(element, uid) {\r\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++;\r\n}\r\n\r\nfunction getEvent(element) {\r\n const uid = getUidEvent(element);\r\n\r\n element.uidEvent = uid;\r\n eventRegistry[uid] = eventRegistry[uid] || {};\r\n\r\n return eventRegistry[uid];\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n return function handler(event) {\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(element, [event]);\r\n };\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n return function handler(event) {\r\n const domElements = element.querySelectorAll(selector);\r\n\r\n for (let { target } = event; target && target !== this; target = target.parentNode) {\r\n for (let i = domElements.length; i--; ) {\r\n if (domElements[i] === target) {\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(target, [event]);\r\n }\r\n }\r\n }\r\n\r\n // To please ESLint\r\n return null;\r\n };\r\n}\r\n\r\nfunction findHandler(events, handler, delegationSelector = null) {\r\n const uidEventList = Object.keys(events);\r\n\r\n for (let i = 0, len = uidEventList.length; i < len; i++) {\r\n const event = events[uidEventList[i]];\r\n\r\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\r\n return event;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\r\n const delegation = typeof handler === 'string';\r\n const originalHandler = delegation ? delegationFn : handler;\r\n\r\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '');\r\n const custom = customEvents[typeEvent];\r\n\r\n if (custom) {\r\n typeEvent = custom;\r\n }\r\n\r\n const isNative = nativeEvents.indexOf(typeEvent) > -1;\r\n\r\n if (!isNative) {\r\n typeEvent = originalTypeEvent;\r\n }\r\n\r\n return [delegation, originalHandler, typeEvent];\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n if (!handler) {\r\n handler = delegationFn;\r\n delegationFn = null;\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const events = getEvent(element);\r\n const handlers = events[typeEvent] || (events[typeEvent] = {});\r\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\r\n\r\n if (previousFn) {\r\n previousFn.oneOff = previousFn.oneOff && oneOff;\r\n\r\n return;\r\n }\r\n\r\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\r\n const fn = delegation\r\n ? bootstrapDelegationHandler(element, handler, delegationFn)\r\n : bootstrapHandler(element, handler);\r\n\r\n fn.delegationSelector = delegation ? handler : null;\r\n fn.originalHandler = originalHandler;\r\n fn.oneOff = oneOff;\r\n fn.uidEvent = uid;\r\n handlers[uid] = fn;\r\n\r\n element.addEventListener(typeEvent, fn, delegation);\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\r\n\r\n if (!fn) {\r\n return;\r\n }\r\n\r\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\r\n delete events[typeEvent][fn.uidEvent];\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n const storeElementEvent = events[typeEvent] || {};\r\n\r\n Object.keys(storeElementEvent).forEach((handlerKey) => {\r\n if (handlerKey.indexOf(namespace) > -1) {\r\n const event = storeElementEvent[handlerKey];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n}\r\n\r\nconst EventHandler = {\r\n on(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, false);\r\n },\r\n\r\n one(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, true);\r\n },\r\n\r\n off(element, originalTypeEvent, handler, delegationFn) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const inNamespace = typeEvent !== originalTypeEvent;\r\n const events = getEvent(element);\r\n const isNamespace = originalTypeEvent.charAt(0) === '.';\r\n\r\n if (typeof originalHandler !== 'undefined') {\r\n // Simplest case: handler is passed, remove that listener ONLY.\r\n if (!events || !events[typeEvent]) {\r\n return;\r\n }\r\n\r\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\r\n return;\r\n }\r\n\r\n if (isNamespace) {\r\n Object.keys(events).forEach((elementEvent) => {\r\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\r\n });\r\n }\r\n\r\n const storeElementEvent = events[typeEvent] || {};\r\n Object.keys(storeElementEvent).forEach((keyHandlers) => {\r\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\r\n\r\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\r\n const event = storeElementEvent[keyHandlers];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n },\r\n\r\n trigger(element, event, args) {\r\n if (typeof event !== 'string' || !element) {\r\n return null;\r\n }\r\n\r\n const typeEvent = event.replace(stripNameRegex, '');\r\n const inNamespace = event !== typeEvent;\r\n const isNative = nativeEvents.indexOf(typeEvent) > -1;\r\n\r\n let jQueryEvent;\r\n let bubbles = true;\r\n let nativeDispatch = true;\r\n let defaultPrevented = false;\r\n let evt = null;\r\n\r\n if (inNamespace && $) {\r\n jQueryEvent = $.Event(event, args);\r\n\r\n $(element).trigger(jQueryEvent);\r\n bubbles = !jQueryEvent.isPropagationStopped();\r\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\r\n defaultPrevented = jQueryEvent.isDefaultPrevented();\r\n }\r\n\r\n if (isNative) {\r\n evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(typeEvent, bubbles, true);\r\n } else {\r\n evt = new CustomEvent(event, {\r\n bubbles,\r\n cancelable: true,\r\n });\r\n }\r\n\r\n // merge custom informations in our event\r\n if (typeof args !== 'undefined') {\r\n Object.keys(args).forEach((key) => {\r\n Object.defineProperty(evt, key, {\r\n get() {\r\n return args[key];\r\n },\r\n });\r\n });\r\n }\r\n\r\n if (defaultPrevented) {\r\n evt.preventDefault();\r\n\r\n if (!defaultPreventedPreservedOnDispatch) {\r\n Object.defineProperty(evt, 'defaultPrevented', {\r\n get: () => true,\r\n });\r\n }\r\n }\r\n\r\n if (nativeDispatch) {\r\n element.dispatchEvent(evt);\r\n }\r\n\r\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\r\n jQueryEvent.preventDefault();\r\n }\r\n\r\n return evt;\r\n },\r\n};\r\n\r\nexport default EventHandler;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): alert.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n TRANSITION_END,\r\n emulateTransitionEnd,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'alert';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.alert';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\r\n\r\nconst EVENT_CLOSE = `close${EVENT_KEY}`;\r\nconst EVENT_CLOSED = `closed${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASSNAME_ALERT = 'alert';\r\nconst CLASSNAME_FADE = 'fade';\r\nconst CLASSNAME_SHOW = 'show';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Alert {\r\n constructor(element) {\r\n this._element = element;\r\n\r\n if (this._element) {\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n // Public\r\n\r\n close(element) {\r\n let rootElement = this._element;\r\n if (element) {\r\n rootElement = this._getRootElement(element);\r\n }\r\n\r\n const customEvent = this._triggerCloseEvent(rootElement);\r\n\r\n if (customEvent === null || customEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._removeElement(rootElement);\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n this._element = null;\r\n }\r\n\r\n // Private\r\n\r\n _getRootElement(element) {\r\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`);\r\n }\r\n\r\n _triggerCloseEvent(element) {\r\n return EventHandler.trigger(element, EVENT_CLOSE);\r\n }\r\n\r\n _removeElement(element) {\r\n element.classList.remove(CLASSNAME_SHOW);\r\n\r\n if (!element.classList.contains(CLASSNAME_FADE)) {\r\n this._destroyElement(element);\r\n return;\r\n }\r\n\r\n const transitionDuration = getTransitionDurationFromElement(element);\r\n\r\n EventHandler.one(element, TRANSITION_END, () => this._destroyElement(element));\r\n emulateTransitionEnd(element, transitionDuration);\r\n }\r\n\r\n _destroyElement(element) {\r\n if (element.parentNode) {\r\n element.parentNode.removeChild(element);\r\n }\r\n\r\n EventHandler.trigger(element, EVENT_CLOSED);\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n let data = Data.getData(this, DATA_KEY);\r\n\r\n if (!data) {\r\n data = new Alert(this);\r\n }\r\n\r\n if (config === 'close') {\r\n data[config](this);\r\n }\r\n });\r\n }\r\n\r\n static handleDismiss(alertInstance) {\r\n return function (event) {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n alertInstance.close(this);\r\n };\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .alert to jQuery only if jQuery is present\r\n */\r\n\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Alert.jQueryInterface;\r\n $.fn[NAME].Constructor = Alert;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Alert.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Alert;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): button.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getjQuery } from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'button';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.button';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst CLASS_NAME_ACTIVE = 'active';\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\r\n\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Button {\r\n constructor(element) {\r\n this._element = element;\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\r\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n this._element = null;\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n let data = Data.getData(this, DATA_KEY);\r\n\r\n if (!data) {\r\n data = new Button(this);\r\n }\r\n\r\n if (config === 'toggle') {\r\n data[config]();\r\n }\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, (event) => {\r\n event.preventDefault();\r\n\r\n const button = event.target.closest(SELECTOR_DATA_TOGGLE);\r\n\r\n let data = Data.getData(button, DATA_KEY);\r\n if (!data) {\r\n data = new Button(button);\r\n }\r\n\r\n data.toggle();\r\n});\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .button to jQuery only if jQuery is present\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Button.jQueryInterface;\r\n $.fn[NAME].Constructor = Button;\r\n\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Button.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Button;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/manipulator.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nfunction normalizeData(val) {\r\n if (val === 'true') {\r\n return true;\r\n }\r\n\r\n if (val === 'false') {\r\n return false;\r\n }\r\n\r\n if (val === Number(val).toString()) {\r\n return Number(val);\r\n }\r\n\r\n if (val === '' || val === 'null') {\r\n return null;\r\n }\r\n\r\n return val;\r\n}\r\n\r\nfunction normalizeDataKey(key) {\r\n return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);\r\n}\r\n\r\nconst Manipulator = {\r\n setDataAttribute(element, key, value) {\r\n element.setAttribute(`data-${normalizeDataKey(key)}`, value);\r\n },\r\n\r\n removeDataAttribute(element, key) {\r\n element.removeAttribute(`data-${normalizeDataKey(key)}`);\r\n },\r\n\r\n getDataAttributes(element) {\r\n if (!element) {\r\n return {};\r\n }\r\n\r\n const attributes = {\r\n ...element.dataset,\r\n };\r\n\r\n Object.keys(attributes).forEach((key) => {\r\n attributes[key] = normalizeData(attributes[key]);\r\n });\r\n\r\n return attributes;\r\n },\r\n\r\n getDataAttribute(element, key) {\r\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`));\r\n },\r\n\r\n offset(element) {\r\n const rect = element.getBoundingClientRect();\r\n\r\n return {\r\n top: rect.top + document.body.scrollTop,\r\n left: rect.left + document.body.scrollLeft,\r\n };\r\n },\r\n\r\n position(element) {\r\n return {\r\n top: element.offsetTop,\r\n left: element.offsetLeft,\r\n };\r\n },\r\n\r\n toggleClass(element, className) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n if (element.classList.contains(className)) {\r\n element.classList.remove(className);\r\n } else {\r\n element.classList.add(className);\r\n }\r\n },\r\n};\r\n\r\nexport default Manipulator;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/selector-engine.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { find as findFn, findOne } from './polyfill';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NODE_TEXT = 3;\r\n\r\nconst SelectorEngine = {\r\n matches(element, selector) {\r\n return element.matches(selector);\r\n },\r\n\r\n find(selector, element = document.documentElement) {\r\n return [].concat(...findFn.call(element, selector));\r\n },\r\n\r\n findOne(selector, element = document.documentElement) {\r\n return findOne.call(element, selector);\r\n },\r\n\r\n children(element, selector) {\r\n const children = [].concat(...element.children);\r\n\r\n return children.filter((child) => child.matches(selector));\r\n },\r\n\r\n parents(element, selector) {\r\n const parents = [];\r\n\r\n let ancestor = element.parentNode;\r\n\r\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\r\n if (this.matches(ancestor, selector)) {\r\n parents.push(ancestor);\r\n }\r\n\r\n ancestor = ancestor.parentNode;\r\n }\r\n\r\n return parents;\r\n },\r\n\r\n prev(element, selector) {\r\n let previous = element.previousElementSibling;\r\n\r\n while (previous) {\r\n if (previous.matches(selector)) {\r\n return [previous];\r\n }\r\n\r\n previous = previous.previousElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n\r\n next(element, selector) {\r\n let next = element.nextElementSibling;\r\n\r\n while (next) {\r\n if (this.matches(next, selector)) {\r\n return [next];\r\n }\r\n\r\n next = next.nextElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n};\r\n\r\nexport default SelectorEngine;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): carousel.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n TRANSITION_END,\r\n emulateTransitionEnd,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n isVisible,\r\n reflow,\r\n triggerTransitionEnd,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'carousel';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.carousel';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst ARROW_LEFT_KEY = 'ArrowLeft';\r\nconst ARROW_RIGHT_KEY = 'ArrowRight';\r\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\r\nconst SWIPE_THRESHOLD = 40;\r\n\r\nconst Default = {\r\n interval: 5000,\r\n keyboard: true,\r\n slide: false,\r\n pause: 'hover',\r\n wrap: true,\r\n touch: true,\r\n};\r\n\r\nconst DefaultType = {\r\n interval: '(number|boolean)',\r\n keyboard: 'boolean',\r\n slide: '(boolean|string)',\r\n pause: '(string|boolean)',\r\n wrap: 'boolean',\r\n touch: 'boolean',\r\n};\r\n\r\nconst DIRECTION_NEXT = 'next';\r\nconst DIRECTION_PREV = 'prev';\r\nconst DIRECTION_LEFT = 'left';\r\nconst DIRECTION_RIGHT = 'right';\r\n\r\nconst EVENT_SLIDE = `slide${EVENT_KEY}`;\r\nconst EVENT_SLID = `slid${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`;\r\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`;\r\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`;\r\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`;\r\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`;\r\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`;\r\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`;\r\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`;\r\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_CAROUSEL = 'carousel';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_SLIDE = 'slide';\r\nconst CLASS_NAME_RIGHT = 'carousel-item-right';\r\nconst CLASS_NAME_LEFT = 'carousel-item-left';\r\nconst CLASS_NAME_NEXT = 'carousel-item-next';\r\nconst CLASS_NAME_PREV = 'carousel-item-prev';\r\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\r\n\r\nconst SELECTOR_ACTIVE = '.active';\r\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\r\nconst SELECTOR_ITEM = '.carousel-item';\r\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\r\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\r\nconst SELECTOR_INDICATORS = '.carousel-indicators';\r\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\r\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\r\n\r\nconst PointerType = {\r\n TOUCH: 'touch',\r\n PEN: 'pen',\r\n};\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\nclass Carousel {\r\n constructor(element, config) {\r\n this._items = null;\r\n this._interval = null;\r\n this._activeElement = null;\r\n this._isPaused = false;\r\n this._isSliding = false;\r\n this.touchTimeout = null;\r\n this.touchStartX = 0;\r\n this.touchDeltaX = 0;\r\n\r\n this._config = this._getConfig(config);\r\n this._element = element;\r\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\r\n this._touchSupported =\r\n 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\r\n this._pointerEvent = Boolean(window.PointerEvent);\r\n\r\n this._addEventListeners();\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n // Public\r\n\r\n next() {\r\n if (!this._isSliding) {\r\n this._slide(DIRECTION_NEXT);\r\n }\r\n }\r\n\r\n nextWhenVisible() {\r\n // Don't call next when the page isn't visible\r\n // or the carousel or its parent isn't visible\r\n if (!document.hidden && isVisible(this._element)) {\r\n this.next();\r\n }\r\n }\r\n\r\n prev() {\r\n if (!this._isSliding) {\r\n this._slide(DIRECTION_PREV);\r\n }\r\n }\r\n\r\n pause(event) {\r\n if (!event) {\r\n this._isPaused = true;\r\n }\r\n\r\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\r\n triggerTransitionEnd(this._element);\r\n this.cycle(true);\r\n }\r\n\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n\r\n cycle(event) {\r\n if (!event) {\r\n this._isPaused = false;\r\n }\r\n\r\n if (this._interval) {\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n\r\n if (this._config && this._config.interval && !this._isPaused) {\r\n this._interval = setInterval(\r\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\r\n this._config.interval\r\n );\r\n }\r\n }\r\n\r\n to(index) {\r\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n const activeIndex = this._getItemIndex(this._activeElement);\r\n\r\n if (index > this._items.length - 1 || index < 0) {\r\n return;\r\n }\r\n\r\n if (this._isSliding) {\r\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\r\n return;\r\n }\r\n\r\n if (activeIndex === index) {\r\n this.pause();\r\n this.cycle();\r\n return;\r\n }\r\n\r\n const direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\r\n\r\n this._slide(direction, this._items[index]);\r\n }\r\n\r\n dispose() {\r\n EventHandler.off(this._element, EVENT_KEY);\r\n Data.removeData(this._element, DATA_KEY);\r\n\r\n this._items = null;\r\n this._config = null;\r\n this._element = null;\r\n this._interval = null;\r\n this._isPaused = null;\r\n this._isSliding = null;\r\n this._activeElement = null;\r\n this._indicatorsElement = null;\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...config,\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _handleSwipe() {\r\n const absDeltax = Math.abs(this.touchDeltaX);\r\n\r\n if (absDeltax <= SWIPE_THRESHOLD) {\r\n return;\r\n }\r\n\r\n const direction = absDeltax / this.touchDeltaX;\r\n\r\n this.touchDeltaX = 0;\r\n\r\n // swipe left\r\n if (direction > 0) {\r\n this.prev();\r\n }\r\n\r\n // swipe right\r\n if (direction < 0) {\r\n this.next();\r\n }\r\n }\r\n\r\n _addEventListeners() {\r\n if (this._config.keyboard) {\r\n EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event));\r\n }\r\n\r\n if (this._config.pause === 'hover') {\r\n EventHandler.on(this._element, EVENT_MOUSEENTER, (event) => this.pause(event));\r\n EventHandler.on(this._element, EVENT_MOUSELEAVE, (event) => this.cycle(event));\r\n }\r\n\r\n if (this._config.touch && this._touchSupported) {\r\n this._addTouchEventListeners();\r\n }\r\n }\r\n\r\n _addTouchEventListeners() {\r\n const start = (event) => {\r\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\r\n this.touchStartX = event.clientX;\r\n } else if (!this._pointerEvent) {\r\n this.touchStartX = event.touches[0].clientX;\r\n }\r\n };\r\n\r\n const move = (event) => {\r\n // ensure swiping with one touch and not pinching\r\n if (event.touches && event.touches.length > 1) {\r\n this.touchDeltaX = 0;\r\n } else {\r\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX;\r\n }\r\n };\r\n\r\n const end = (event) => {\r\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\r\n this.touchDeltaX = event.clientX - this.touchStartX;\r\n }\r\n\r\n this._handleSwipe();\r\n if (this._config.pause === 'hover') {\r\n // If it's a touch-enabled device, mouseenter/leave are fired as\r\n // part of the mouse compatibility events on first tap - the carousel\r\n // would stop cycling until user tapped out of it;\r\n // here, we listen for touchend, explicitly pause the carousel\r\n // (as if it's the second time we tap on it, mouseenter compat event\r\n // is NOT fired) and after a timeout (to allow for mouse compatibility\r\n // events to fire) we explicitly restart cycling\r\n\r\n this.pause();\r\n if (this.touchTimeout) {\r\n clearTimeout(this.touchTimeout);\r\n }\r\n\r\n this.touchTimeout = setTimeout(\r\n (event) => this.cycle(event),\r\n TOUCHEVENT_COMPAT_WAIT + this._config.interval\r\n );\r\n }\r\n };\r\n\r\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach((itemImg) => {\r\n EventHandler.on(itemImg, EVENT_DRAG_START, (e) => e.preventDefault());\r\n });\r\n\r\n if (this._pointerEvent) {\r\n EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => start(event));\r\n EventHandler.on(this._element, EVENT_POINTERUP, (event) => end(event));\r\n\r\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\r\n } else {\r\n EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => start(event));\r\n EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => move(event));\r\n EventHandler.on(this._element, EVENT_TOUCHEND, (event) => end(event));\r\n }\r\n }\r\n\r\n _keydown(event) {\r\n if (/input|textarea/i.test(event.target.tagName)) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case ARROW_LEFT_KEY:\r\n event.preventDefault();\r\n this.prev();\r\n break;\r\n case ARROW_RIGHT_KEY:\r\n event.preventDefault();\r\n this.next();\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n _getItemIndex(element) {\r\n this._items =\r\n element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];\r\n\r\n return this._items.indexOf(element);\r\n }\r\n\r\n _getItemByDirection(direction, activeElement) {\r\n const isNextDirection = direction === DIRECTION_NEXT;\r\n const isPrevDirection = direction === DIRECTION_PREV;\r\n const activeIndex = this._getItemIndex(activeElement);\r\n const lastItemIndex = this._items.length - 1;\r\n const isGoingToWrap =\r\n (isPrevDirection && activeIndex === 0) || (isNextDirection && activeIndex === lastItemIndex);\r\n\r\n if (isGoingToWrap && !this._config.wrap) {\r\n return activeElement;\r\n }\r\n\r\n const delta = direction === DIRECTION_PREV ? -1 : 1;\r\n const itemIndex = (activeIndex + delta) % this._items.length;\r\n\r\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\r\n }\r\n\r\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\r\n const targetIndex = this._getItemIndex(relatedTarget);\r\n const fromIndex = this._getItemIndex(\r\n SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\r\n );\r\n\r\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\r\n relatedTarget,\r\n direction: eventDirectionName,\r\n from: fromIndex,\r\n to: targetIndex,\r\n });\r\n }\r\n\r\n _setActiveIndicatorElement(element) {\r\n if (this._indicatorsElement) {\r\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement);\r\n for (let i = 0; i < indicators.length; i++) {\r\n indicators[i].classList.remove(CLASS_NAME_ACTIVE);\r\n }\r\n\r\n const nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\r\n\r\n if (nextIndicator) {\r\n nextIndicator.classList.add(CLASS_NAME_ACTIVE);\r\n }\r\n }\r\n }\r\n\r\n _slide(direction, element) {\r\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n const activeElementIndex = this._getItemIndex(activeElement);\r\n const nextElement =\r\n element || (activeElement && this._getItemByDirection(direction, activeElement));\r\n\r\n const nextElementIndex = this._getItemIndex(nextElement);\r\n const isCycling = Boolean(this._interval);\r\n\r\n let directionalClassName;\r\n let orderClassName;\r\n let eventDirectionName;\r\n\r\n if (direction === DIRECTION_NEXT) {\r\n directionalClassName = CLASS_NAME_LEFT;\r\n orderClassName = CLASS_NAME_NEXT;\r\n eventDirectionName = DIRECTION_LEFT;\r\n } else {\r\n directionalClassName = CLASS_NAME_RIGHT;\r\n orderClassName = CLASS_NAME_PREV;\r\n eventDirectionName = DIRECTION_RIGHT;\r\n }\r\n\r\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\r\n this._isSliding = false;\r\n return;\r\n }\r\n\r\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\r\n if (slideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (!activeElement || !nextElement) {\r\n // Some weirdness is happening, so we bail\r\n return;\r\n }\r\n\r\n this._isSliding = true;\r\n\r\n if (isCycling) {\r\n this.pause();\r\n }\r\n\r\n this._setActiveIndicatorElement(nextElement);\r\n\r\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\r\n nextElement.classList.add(orderClassName);\r\n\r\n reflow(nextElement);\r\n\r\n activeElement.classList.add(directionalClassName);\r\n nextElement.classList.add(directionalClassName);\r\n\r\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);\r\n if (nextElementInterval) {\r\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\r\n this._config.interval = nextElementInterval;\r\n } else {\r\n this._config.interval = this._config.defaultInterval || this._config.interval;\r\n }\r\n\r\n const transitionDuration = getTransitionDurationFromElement(activeElement);\r\n\r\n EventHandler.one(activeElement, TRANSITION_END, () => {\r\n nextElement.classList.remove(directionalClassName, orderClassName);\r\n nextElement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);\r\n\r\n this._isSliding = false;\r\n\r\n setTimeout(() => {\r\n EventHandler.trigger(this._element, EVENT_SLID, {\r\n relatedTarget: nextElement,\r\n direction: eventDirectionName,\r\n from: activeElementIndex,\r\n to: nextElementIndex,\r\n });\r\n }, 0);\r\n });\r\n\r\n emulateTransitionEnd(activeElement, transitionDuration);\r\n } else {\r\n activeElement.classList.remove(CLASS_NAME_ACTIVE);\r\n nextElement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n this._isSliding = false;\r\n EventHandler.trigger(this._element, EVENT_SLID, {\r\n relatedTarget: nextElement,\r\n direction: eventDirectionName,\r\n from: activeElementIndex,\r\n to: nextElementIndex,\r\n });\r\n }\r\n\r\n if (isCycling) {\r\n this.cycle();\r\n }\r\n }\r\n\r\n // Static\r\n\r\n static carouselInterface(element, config) {\r\n let data = Data.getData(element, DATA_KEY);\r\n let _config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(element),\r\n };\r\n\r\n if (typeof config === 'object') {\r\n _config = {\r\n ..._config,\r\n ...config,\r\n };\r\n }\r\n\r\n const action = typeof config === 'string' ? config : _config.slide;\r\n\r\n if (!data) {\r\n data = new Carousel(element, _config);\r\n }\r\n\r\n if (typeof config === 'number') {\r\n data.to(config);\r\n } else if (typeof action === 'string') {\r\n if (typeof data[action] === 'undefined') {\r\n throw new TypeError(`No method named \"${action}\"`);\r\n }\r\n\r\n data[action]();\r\n } else if (_config.interval && _config.ride) {\r\n data.pause();\r\n data.cycle();\r\n }\r\n }\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n Carousel.carouselInterface(this, config);\r\n });\r\n }\r\n\r\n static dataApiClickHandler(event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\r\n return;\r\n }\r\n\r\n const config = {\r\n ...Manipulator.getDataAttributes(target),\r\n ...Manipulator.getDataAttributes(this),\r\n };\r\n const slideIndex = this.getAttribute('data-slide-to');\r\n\r\n if (slideIndex) {\r\n config.interval = false;\r\n }\r\n\r\n Carousel.carouselInterface(target, config);\r\n\r\n if (slideIndex) {\r\n Data.getData(target, DATA_KEY).to(slideIndex);\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\r\n\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\r\n\r\n for (let i = 0, len = carousels.length; i < len; i++) {\r\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY));\r\n }\r\n});\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .carousel to jQuery only if jQuery is present\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Carousel.jQueryInterface;\r\n $.fn[NAME].Constructor = Carousel;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Carousel.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Carousel;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): collapse.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n TRANSITION_END,\r\n emulateTransitionEnd,\r\n getSelectorFromElement,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n isElement,\r\n reflow,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'collapse';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.collapse';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst Default = {\r\n toggle: true,\r\n parent: '',\r\n};\r\n\r\nconst DefaultType = {\r\n toggle: 'boolean',\r\n parent: '(string|element)',\r\n};\r\n\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_COLLAPSE = 'collapse';\r\nconst CLASS_NAME_COLLAPSING = 'collapsing';\r\nconst CLASS_NAME_COLLAPSED = 'collapsed';\r\n\r\nconst WIDTH = 'width';\r\nconst HEIGHT = 'height';\r\n\r\nconst SELECTOR_ACTIVES = '.show, .collapsing';\r\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Collapse {\r\n constructor(element, config) {\r\n this._isTransitioning = false;\r\n this._element = element;\r\n this._config = this._getConfig(config);\r\n this._triggerArray = SelectorEngine.find(\r\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\r\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\r\n );\r\n\r\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\r\n\r\n for (let i = 0, len = toggleList.length; i < len; i++) {\r\n const elem = toggleList[i];\r\n const selector = getSelectorFromElement(elem);\r\n const filterElement = SelectorEngine.find(selector).filter(\r\n (foundElem) => foundElem === element\r\n );\r\n\r\n if (selector !== null && filterElement.length) {\r\n this._selector = selector;\r\n this._triggerArray.push(elem);\r\n }\r\n }\r\n\r\n this._parent = this._config.parent ? this._getParent() : null;\r\n\r\n if (!this._config.parent) {\r\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\r\n }\r\n\r\n if (this._config.toggle) {\r\n this.toggle();\r\n }\r\n\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n\r\n show() {\r\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\r\n return;\r\n }\r\n\r\n let actives;\r\n let activesData;\r\n\r\n if (this._parent) {\r\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter((elem) => {\r\n if (typeof this._config.parent === 'string') {\r\n return elem.getAttribute('data-parent') === this._config.parent;\r\n }\r\n\r\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\r\n });\r\n\r\n if (actives.length === 0) {\r\n actives = null;\r\n }\r\n }\r\n\r\n const container = SelectorEngine.findOne(this._selector);\r\n if (actives) {\r\n const tempActiveData = actives.filter((elem) => container !== elem);\r\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null;\r\n\r\n if (activesData && activesData._isTransitioning) {\r\n return;\r\n }\r\n }\r\n\r\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW);\r\n if (startEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (actives) {\r\n actives.forEach((elemActive) => {\r\n if (container !== elemActive) {\r\n Collapse.collapseInterface(elemActive, 'hide');\r\n }\r\n\r\n if (!activesData) {\r\n Data.setData(elemActive, DATA_KEY, null);\r\n }\r\n });\r\n }\r\n\r\n const dimension = this._getDimension();\r\n\r\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\r\n this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n\r\n this._element.style[dimension] = 0;\r\n\r\n if (this._triggerArray.length) {\r\n this._triggerArray.forEach((element) => {\r\n element.classList.remove(CLASS_NAME_COLLAPSED);\r\n element.setAttribute('aria-expanded', true);\r\n });\r\n }\r\n\r\n this.setTransitioning(true);\r\n\r\n const complete = () => {\r\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n this._element.style[dimension] = '';\r\n\r\n this.setTransitioning(false);\r\n\r\n EventHandler.trigger(this._element, EVENT_SHOWN);\r\n };\r\n\r\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\r\n const scrollSize = `scroll${capitalizedDimension}`;\r\n const transitionDuration = getTransitionDurationFromElement(this._element);\r\n\r\n EventHandler.one(this._element, TRANSITION_END, complete);\r\n\r\n emulateTransitionEnd(this._element, transitionDuration);\r\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\r\n }\r\n\r\n hide() {\r\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\r\n return;\r\n }\r\n\r\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n if (startEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const dimension = this._getDimension();\r\n\r\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\r\n\r\n reflow(this._element);\r\n\r\n this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n const triggerArrayLength = this._triggerArray.length;\r\n if (triggerArrayLength > 0) {\r\n for (let i = 0; i < triggerArrayLength; i++) {\r\n const trigger = this._triggerArray[i];\r\n const elem = getElementFromSelector(trigger);\r\n\r\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\r\n trigger.classList.add(CLASS_NAME_COLLAPSED);\r\n trigger.setAttribute('aria-expanded', false);\r\n }\r\n }\r\n }\r\n\r\n this.setTransitioning(true);\r\n\r\n const complete = () => {\r\n this.setTransitioning(false);\r\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n this._element.classList.add(CLASS_NAME_COLLAPSE);\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n };\r\n\r\n this._element.style[dimension] = '';\r\n const transitionDuration = getTransitionDurationFromElement(this._element);\r\n\r\n EventHandler.one(this._element, TRANSITION_END, complete);\r\n emulateTransitionEnd(this._element, transitionDuration);\r\n }\r\n\r\n setTransitioning(isTransitioning) {\r\n this._isTransitioning = isTransitioning;\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n\r\n this._config = null;\r\n this._parent = null;\r\n this._element = null;\r\n this._triggerArray = null;\r\n this._isTransitioning = null;\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...config,\r\n };\r\n config.toggle = Boolean(config.toggle); // Coerce string values\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _getDimension() {\r\n const hasWidth = this._element.classList.contains(WIDTH);\r\n return hasWidth ? WIDTH : HEIGHT;\r\n }\r\n\r\n _getParent() {\r\n let { parent } = this._config;\r\n\r\n if (isElement(parent)) {\r\n // it's a jQuery object\r\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\r\n parent = parent[0];\r\n }\r\n } else {\r\n parent = SelectorEngine.findOne(parent);\r\n }\r\n\r\n const selector = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`;\r\n\r\n SelectorEngine.find(selector, parent).forEach((element) => {\r\n const selected = getElementFromSelector(element);\r\n\r\n this._addAriaAndCollapsedClass(selected, [element]);\r\n });\r\n\r\n return parent;\r\n }\r\n\r\n _addAriaAndCollapsedClass(element, triggerArray) {\r\n if (element) {\r\n const isOpen = element.classList.contains(CLASS_NAME_SHOW);\r\n\r\n if (triggerArray.length) {\r\n triggerArray.forEach((elem) => {\r\n if (isOpen) {\r\n elem.classList.remove(CLASS_NAME_COLLAPSED);\r\n } else {\r\n elem.classList.add(CLASS_NAME_COLLAPSED);\r\n }\r\n\r\n elem.setAttribute('aria-expanded', isOpen);\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Static\r\n\r\n static collapseInterface(element, config) {\r\n let data = Data.getData(element, DATA_KEY);\r\n const _config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(element),\r\n ...(typeof config === 'object' && config ? config : {}),\r\n };\r\n\r\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\r\n _config.toggle = false;\r\n }\r\n\r\n if (!data) {\r\n data = new Collapse(element, _config);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n }\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n Collapse.collapseInterface(this, config);\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\r\n if (event.target.tagName === 'A') {\r\n event.preventDefault();\r\n }\r\n\r\n const triggerData = Manipulator.getDataAttributes(this);\r\n const selector = getSelectorFromElement(this);\r\n const selectorElements = SelectorEngine.find(selector);\r\n\r\n selectorElements.forEach((element) => {\r\n const data = Data.getData(element, DATA_KEY);\r\n let config;\r\n if (data) {\r\n // update parent attribute\r\n if (data._parent === null && typeof triggerData.parent === 'string') {\r\n data._config.parent = triggerData.parent;\r\n data._parent = data._getParent();\r\n }\r\n\r\n config = 'toggle';\r\n } else {\r\n config = triggerData;\r\n }\r\n\r\n Collapse.collapseInterface(element, config);\r\n });\r\n});\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .collapse to jQuery only if jQuery is present\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Collapse.jQueryInterface;\r\n $.fn[NAME].Constructor = Collapse;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Collapse.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Collapse;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dropdown.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n getElementFromSelector,\r\n isElement,\r\n isVisible,\r\n noop,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport Popper from 'popper.js';\r\nimport SelectorEngine from './dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'dropdown';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.dropdown';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst ESCAPE_KEY = 'Escape';\r\nconst SPACE_KEY = 'Space';\r\nconst TAB_KEY = 'Tab';\r\nconst ARROW_UP_KEY = 'ArrowUp';\r\nconst ARROW_DOWN_KEY = 'ArrowDown';\r\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\r\n\r\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`);\r\n\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_CLICK = `click${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_DISABLED = 'disabled';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_DROPUP = 'dropup';\r\nconst CLASS_NAME_DROPRIGHT = 'dropright';\r\nconst CLASS_NAME_DROPLEFT = 'dropleft';\r\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\r\nconst CLASS_NAME_NAVBAR = 'navbar';\r\nconst CLASS_NAME_POSITION_STATIC = 'position-static';\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]';\r\nconst SELECTOR_FORM_CHILD = '.dropdown form';\r\nconst SELECTOR_MENU = '.dropdown-menu';\r\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\r\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\r\n\r\nconst PLACEMENT_TOP = 'top-start';\r\nconst PLACEMENT_TOPEND = 'top-end';\r\nconst PLACEMENT_BOTTOM = 'bottom-start';\r\nconst PLACEMENT_BOTTOMEND = 'bottom-end';\r\nconst PLACEMENT_RIGHT = 'right-start';\r\nconst PLACEMENT_LEFT = 'left-start';\r\n\r\nconst Default = {\r\n offset: 0,\r\n flip: true,\r\n boundary: 'scrollParent',\r\n reference: 'toggle',\r\n display: 'dynamic',\r\n popperConfig: null,\r\n};\r\n\r\nconst DefaultType = {\r\n offset: '(number|string|function)',\r\n flip: 'boolean',\r\n boundary: '(string|element)',\r\n reference: '(string|element)',\r\n display: 'string',\r\n popperConfig: '(null|object)',\r\n};\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Dropdown {\r\n constructor(element, config) {\r\n this._element = element;\r\n this._popper = null;\r\n this._config = this._getConfig(config);\r\n this._menu = this._getMenuElement();\r\n this._inNavbar = this._detectNavbar();\r\n\r\n this._addEventListeners();\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\r\n return;\r\n }\r\n\r\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW);\r\n\r\n Dropdown.clearMenus();\r\n\r\n if (isActive) {\r\n return;\r\n }\r\n\r\n this.show();\r\n }\r\n\r\n show() {\r\n if (\r\n this._element.disabled ||\r\n this._element.classList.contains(CLASS_NAME_DISABLED) ||\r\n this._menu.classList.contains(CLASS_NAME_SHOW)\r\n ) {\r\n return;\r\n }\r\n\r\n const parent = Dropdown.getParentFromElement(this._element);\r\n const relatedTarget = {\r\n relatedTarget: this._element,\r\n };\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget);\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n // Disable totally Popper.js for Dropdown in Navbar\r\n if (!this._inNavbar) {\r\n if (typeof Popper === 'undefined') {\r\n throw new TypeError(\"Bootstrap's dropdowns require Popper.js (https://popper.js.org)\");\r\n }\r\n\r\n let referenceElement = this._element;\r\n\r\n if (this._config.reference === 'parent') {\r\n referenceElement = parent;\r\n } else if (isElement(this._config.reference)) {\r\n referenceElement = this._config.reference;\r\n\r\n // Check if it's jQuery element\r\n if (typeof this._config.reference.jquery !== 'undefined') {\r\n referenceElement = this._config.reference[0];\r\n }\r\n }\r\n\r\n // If boundary is not `scrollParent`, then set position to `static`\r\n // to allow the menu to \"escape\" the scroll parent's boundaries\r\n // https://github.com/twbs/bootstrap/issues/24251\r\n if (this._config.boundary !== 'scrollParent') {\r\n parent.classList.add(CLASS_NAME_POSITION_STATIC);\r\n }\r\n\r\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());\r\n }\r\n\r\n // If this is a touch-enabled device we add extra\r\n // empty mouseover listeners to the body's immediate children;\r\n // only needed because of broken event delegation on iOS\r\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\r\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\r\n []\r\n .concat(...document.body.children)\r\n .forEach((elem) => EventHandler.on(elem, 'mouseover', null, noop()));\r\n }\r\n\r\n this._element.focus();\r\n this._element.setAttribute('aria-expanded', true);\r\n\r\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW);\r\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW);\r\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget);\r\n }\r\n\r\n hide() {\r\n if (\r\n this._element.disabled ||\r\n this._element.classList.contains(CLASS_NAME_DISABLED) ||\r\n !this._menu.classList.contains(CLASS_NAME_SHOW)\r\n ) {\r\n return;\r\n }\r\n\r\n const parent = Dropdown.getParentFromElement(this._element);\r\n const relatedTarget = {\r\n relatedTarget: this._element,\r\n };\r\n\r\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (this._popper) {\r\n this._popper.destroy();\r\n }\r\n\r\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW);\r\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW);\r\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget);\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n EventHandler.off(this._element, EVENT_KEY);\r\n this._element = null;\r\n this._menu = null;\r\n if (this._popper) {\r\n this._popper.destroy();\r\n this._popper = null;\r\n }\r\n }\r\n\r\n update() {\r\n this._inNavbar = this._detectNavbar();\r\n if (this._popper) {\r\n this._popper.scheduleUpdate();\r\n }\r\n }\r\n\r\n // Private\r\n\r\n _addEventListeners() {\r\n EventHandler.on(this._element, EVENT_CLICK, (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.toggle();\r\n });\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...this.constructor.Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...config,\r\n };\r\n\r\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\r\n\r\n return config;\r\n }\r\n\r\n _getMenuElement() {\r\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0];\r\n }\r\n\r\n _getPlacement() {\r\n const parentDropdown = this._element.parentNode;\r\n let placement = PLACEMENT_BOTTOM;\r\n\r\n // Handle dropup\r\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\r\n placement = PLACEMENT_TOP;\r\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\r\n placement = PLACEMENT_TOPEND;\r\n }\r\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\r\n placement = PLACEMENT_RIGHT;\r\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\r\n placement = PLACEMENT_LEFT;\r\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\r\n placement = PLACEMENT_BOTTOMEND;\r\n }\r\n\r\n return placement;\r\n }\r\n\r\n _detectNavbar() {\r\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`));\r\n }\r\n\r\n _getOffset() {\r\n const offset = {};\r\n\r\n if (typeof this._config.offset === 'function') {\r\n offset.fn = (data) => {\r\n data.offsets = {\r\n ...data.offsets,\r\n ...(this._config.offset(data.offsets, this._element) || {}),\r\n };\r\n\r\n return data;\r\n };\r\n } else {\r\n offset.offset = this._config.offset;\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n _getPopperConfig() {\r\n const popperConfig = {\r\n placement: this._getPlacement(),\r\n modifiers: {\r\n offset: this._getOffset(),\r\n flip: {\r\n enabled: this._config.flip,\r\n },\r\n preventOverflow: {\r\n boundariesElement: this._config.boundary,\r\n },\r\n },\r\n };\r\n\r\n // Disable Popper.js if we have a static display\r\n if (this._config.display === 'static') {\r\n popperConfig.modifiers.applyStyle = {\r\n enabled: false,\r\n };\r\n }\r\n\r\n return {\r\n ...popperConfig,\r\n ...this._config.popperConfig,\r\n };\r\n }\r\n\r\n // Static\r\n\r\n static dropdownInterface(element, config) {\r\n let data = Data.getData(element, DATA_KEY);\r\n const _config = typeof config === 'object' ? config : null;\r\n\r\n if (!data) {\r\n data = new Dropdown(element, _config);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n }\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n Dropdown.dropdownInterface(this, config);\r\n });\r\n }\r\n\r\n static clearMenus(event) {\r\n if (\r\n event &&\r\n (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))\r\n ) {\r\n return;\r\n }\r\n\r\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\r\n\r\n for (let i = 0, len = toggles.length; i < len; i++) {\r\n const parent = Dropdown.getParentFromElement(toggles[i]);\r\n const context = Data.getData(toggles[i], DATA_KEY);\r\n const relatedTarget = {\r\n relatedTarget: toggles[i],\r\n };\r\n\r\n if (event && event.type === 'click') {\r\n relatedTarget.clickEvent = event;\r\n }\r\n\r\n if (!context) {\r\n continue;\r\n }\r\n\r\n const dropdownMenu = context._menu;\r\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\r\n continue;\r\n }\r\n\r\n if (\r\n event &&\r\n ((event.type === 'click' && /input|textarea/i.test(event.target.tagName)) ||\r\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\r\n dropdownMenu.contains(event.target)\r\n ) {\r\n continue;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget);\r\n if (hideEvent.defaultPrevented) {\r\n continue;\r\n }\r\n\r\n // If this is a touch-enabled device we remove the extra\r\n // empty mouseover listeners we added for iOS support\r\n if ('ontouchstart' in document.documentElement) {\r\n []\r\n .concat(...document.body.children)\r\n .forEach((elem) => EventHandler.off(elem, 'mouseover', null, noop()));\r\n }\r\n\r\n toggles[i].setAttribute('aria-expanded', 'false');\r\n\r\n if (context._popper) {\r\n context._popper.destroy();\r\n }\r\n\r\n dropdownMenu.classList.remove(CLASS_NAME_SHOW);\r\n toggles[i].classList.remove(CLASS_NAME_SHOW);\r\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget);\r\n }\r\n }\r\n\r\n static getParentFromElement(element) {\r\n return getElementFromSelector(element) || element.parentNode;\r\n }\r\n\r\n static dataApiKeydownHandler(event) {\r\n // If not input/textarea:\r\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\r\n // If input/textarea:\r\n // - If space key => not a dropdown command\r\n // - If key is other than escape\r\n // - If key is not up or down => not a dropdown command\r\n // - If trigger inside the menu => not a dropdown command\r\n if (\r\n /input|textarea/i.test(event.target.tagName)\r\n ? event.key === SPACE_KEY ||\r\n (event.key !== ESCAPE_KEY &&\r\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\r\n event.target.closest(SELECTOR_MENU)))\r\n : !REGEXP_KEYDOWN.test(event.key)\r\n ) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\r\n return;\r\n }\r\n\r\n const parent = Dropdown.getParentFromElement(this);\r\n const isActive = this.classList.contains(CLASS_NAME_SHOW);\r\n\r\n if (event.key === ESCAPE_KEY) {\r\n const button = this.matches(SELECTOR_DATA_TOGGLE)\r\n ? this\r\n : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0];\r\n button.focus();\r\n Dropdown.clearMenus();\r\n return;\r\n }\r\n\r\n if (!isActive || event.key === SPACE_KEY) {\r\n Dropdown.clearMenus();\r\n return;\r\n }\r\n\r\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);\r\n\r\n if (!items.length) {\r\n return;\r\n }\r\n\r\n let index = items.indexOf(event.target);\r\n\r\n if (event.key === ARROW_UP_KEY && index > 0) {\r\n // Up\r\n index--;\r\n }\r\n\r\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\r\n // Down\r\n index++;\r\n }\r\n\r\n // index is -1 if the first keydown is an ArrowUp\r\n index = index === -1 ? 0 : index;\r\n\r\n items[index].focus();\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(\r\n document,\r\n EVENT_KEYDOWN_DATA_API,\r\n SELECTOR_DATA_TOGGLE,\r\n Dropdown.dataApiKeydownHandler\r\n);\r\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);\r\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n Dropdown.dropdownInterface(this, 'toggle');\r\n});\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => e.stopPropagation());\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .dropdown to jQuery only if jQuery is present\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Dropdown.jQueryInterface;\r\n $.fn[NAME].Constructor = Dropdown;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Dropdown.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Dropdown;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): modal.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n TRANSITION_END,\r\n emulateTransitionEnd,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n isVisible,\r\n reflow,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'modal';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.modal';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst Default = {\r\n backdrop: true,\r\n keyboard: true,\r\n focus: true,\r\n show: true,\r\n};\r\n\r\nconst DefaultType = {\r\n backdrop: '(boolean|string)',\r\n keyboard: 'boolean',\r\n focus: 'boolean',\r\n show: 'boolean',\r\n};\r\n\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`;\r\nconst EVENT_RESIZE = `resize${EVENT_KEY}`;\r\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\r\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`;\r\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\r\nconst CLASS_NAME_BACKDROP = 'modal-backdrop';\r\nconst CLASS_NAME_OPEN = 'modal-open';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_STATIC = 'modal-static';\r\n\r\nconst SELECTOR_DIALOG = '.modal-dialog';\r\nconst SELECTOR_MODAL_BODY = '.modal-body';\r\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]';\r\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Modal {\r\n constructor(element, config) {\r\n this._config = this._getConfig(config);\r\n this._element = element;\r\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element);\r\n this._backdrop = null;\r\n this._isShown = false;\r\n this._isBodyOverflowing = false;\r\n this._ignoreBackdropClick = false;\r\n this._isTransitioning = false;\r\n this._scrollbarWidth = 0;\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n // Public\r\n\r\n toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget);\r\n }\r\n\r\n show(relatedTarget) {\r\n if (this._isShown || this._isTransitioning) {\r\n return;\r\n }\r\n\r\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\r\n relatedTarget,\r\n });\r\n\r\n if (this._isShown || showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = true;\r\n\r\n this._checkScrollbar();\r\n this._setScrollbar();\r\n\r\n this._adjustDialog();\r\n\r\n this._setEscapeEvent();\r\n this._setResizeEvent();\r\n\r\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, (event) =>\r\n this.hide(event)\r\n );\r\n\r\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\r\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, (event) => {\r\n if (event.target === this._element) {\r\n this._ignoreBackdropClick = true;\r\n }\r\n });\r\n });\r\n\r\n this._showBackdrop(() => this._showElement(relatedTarget));\r\n }\r\n\r\n hide(event) {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n if (!this._isShown || this._isTransitioning) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = false;\r\n const transition = this._element.classList.contains(CLASS_NAME_FADE);\r\n\r\n if (transition) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n this._setEscapeEvent();\r\n this._setResizeEvent();\r\n\r\n EventHandler.off(document, EVENT_FOCUSIN);\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\r\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\r\n\r\n if (transition) {\r\n const transitionDuration = getTransitionDurationFromElement(this._element);\r\n\r\n EventHandler.one(this._element, TRANSITION_END, (event) => this._hideModal(event));\r\n emulateTransitionEnd(this._element, transitionDuration);\r\n } else {\r\n this._hideModal();\r\n }\r\n }\r\n\r\n dispose() {\r\n [window, this._element, this._dialog].forEach((htmlElement) =>\r\n EventHandler.off(htmlElement, EVENT_KEY)\r\n );\r\n\r\n /**\r\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\r\n * Do not move `document` in `htmlElements` array\r\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\r\n */\r\n EventHandler.off(document, EVENT_FOCUSIN);\r\n\r\n Data.removeData(this._element, DATA_KEY);\r\n\r\n this._config = null;\r\n this._element = null;\r\n this._dialog = null;\r\n this._backdrop = null;\r\n this._isShown = null;\r\n this._isBodyOverflowing = null;\r\n this._ignoreBackdropClick = null;\r\n this._isTransitioning = null;\r\n this._scrollbarWidth = null;\r\n }\r\n\r\n handleUpdate() {\r\n this._adjustDialog();\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...config,\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _showElement(relatedTarget) {\r\n const transition = this._element.classList.contains(CLASS_NAME_FADE);\r\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\r\n\r\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\r\n // Don't move modal's DOM position\r\n document.body.appendChild(this._element);\r\n }\r\n\r\n this._element.style.display = 'block';\r\n this._element.removeAttribute('aria-hidden');\r\n this._element.setAttribute('aria-modal', true);\r\n this._element.setAttribute('role', 'dialog');\r\n this._element.scrollTop = 0;\r\n\r\n if (modalBody) {\r\n modalBody.scrollTop = 0;\r\n }\r\n\r\n if (transition) {\r\n reflow(this._element);\r\n }\r\n\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n if (this._config.focus) {\r\n this._enforceFocus();\r\n }\r\n\r\n const transitionComplete = () => {\r\n if (this._config.focus) {\r\n this._element.focus();\r\n }\r\n\r\n this._isTransitioning = false;\r\n EventHandler.trigger(this._element, EVENT_SHOWN, {\r\n relatedTarget,\r\n });\r\n };\r\n\r\n if (transition) {\r\n const transitionDuration = getTransitionDurationFromElement(this._dialog);\r\n\r\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete);\r\n emulateTransitionEnd(this._dialog, transitionDuration);\r\n } else {\r\n transitionComplete();\r\n }\r\n }\r\n\r\n _enforceFocus() {\r\n EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop\r\n EventHandler.on(document, EVENT_FOCUSIN, (event) => {\r\n if (\r\n document !== event.target &&\r\n this._element !== event.target &&\r\n !this._element.contains(event.target)\r\n ) {\r\n this._element.focus();\r\n }\r\n });\r\n }\r\n\r\n _setEscapeEvent() {\r\n if (this._isShown) {\r\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {\r\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\r\n event.preventDefault();\r\n this.hide();\r\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\r\n this._triggerBackdropTransition();\r\n }\r\n });\r\n } else {\r\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);\r\n }\r\n }\r\n\r\n _setResizeEvent() {\r\n if (this._isShown) {\r\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog());\r\n } else {\r\n EventHandler.off(window, EVENT_RESIZE);\r\n }\r\n }\r\n\r\n _hideModal() {\r\n this._element.style.display = 'none';\r\n this._element.setAttribute('aria-hidden', true);\r\n this._element.removeAttribute('aria-modal');\r\n this._element.removeAttribute('role');\r\n this._isTransitioning = false;\r\n this._showBackdrop(() => {\r\n document.body.classList.remove(CLASS_NAME_OPEN);\r\n this._resetAdjustments();\r\n this._resetScrollbar();\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n });\r\n }\r\n\r\n _removeBackdrop() {\r\n this._backdrop.parentNode.removeChild(this._backdrop);\r\n this._backdrop = null;\r\n }\r\n\r\n _showBackdrop(callback) {\r\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';\r\n\r\n if (this._isShown && this._config.backdrop) {\r\n this._backdrop = document.createElement('div');\r\n this._backdrop.className = CLASS_NAME_BACKDROP;\r\n\r\n if (animate) {\r\n this._backdrop.classList.add(animate);\r\n }\r\n\r\n document.body.appendChild(this._backdrop);\r\n\r\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, (event) => {\r\n if (this._ignoreBackdropClick) {\r\n this._ignoreBackdropClick = false;\r\n return;\r\n }\r\n\r\n if (event.target !== event.currentTarget) {\r\n return;\r\n }\r\n\r\n this._triggerBackdropTransition();\r\n });\r\n\r\n if (animate) {\r\n reflow(this._backdrop);\r\n }\r\n\r\n this._backdrop.classList.add(CLASS_NAME_SHOW);\r\n\r\n if (!animate) {\r\n callback();\r\n return;\r\n }\r\n\r\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);\r\n\r\n EventHandler.one(this._backdrop, TRANSITION_END, callback);\r\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration);\r\n } else if (!this._isShown && this._backdrop) {\r\n this._backdrop.classList.remove(CLASS_NAME_SHOW);\r\n\r\n const callbackRemove = () => {\r\n this._removeBackdrop();\r\n callback();\r\n };\r\n\r\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\r\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);\r\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove);\r\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration);\r\n } else {\r\n callbackRemove();\r\n }\r\n } else {\r\n callback();\r\n }\r\n }\r\n\r\n _triggerBackdropTransition() {\r\n if (this._config.backdrop === 'static') {\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._element.classList.add(CLASS_NAME_STATIC);\r\n const modalTransitionDuration = getTransitionDurationFromElement(this._element);\r\n EventHandler.one(this._element, TRANSITION_END, () => {\r\n this._element.classList.remove(CLASS_NAME_STATIC);\r\n });\r\n emulateTransitionEnd(this._element, modalTransitionDuration);\r\n this._element.focus();\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n\r\n // ----------------------------------------------------------------------\r\n // the following methods are used to handle overflowing modals\r\n // ----------------------------------------------------------------------\r\n\r\n _adjustDialog() {\r\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n\r\n if (!this._isBodyOverflowing && isModalOverflowing) {\r\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`;\r\n }\r\n\r\n if (this._isBodyOverflowing && !isModalOverflowing) {\r\n this._element.style.paddingRight = `${this._scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n _resetAdjustments() {\r\n this._element.style.paddingLeft = '';\r\n this._element.style.paddingRight = '';\r\n }\r\n\r\n _checkScrollbar() {\r\n const rect = document.body.getBoundingClientRect();\r\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\r\n this._scrollbarWidth = this._getScrollbarWidth();\r\n }\r\n\r\n _setScrollbar() {\r\n if (this._isBodyOverflowing) {\r\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\r\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\r\n\r\n // Adjust fixed content padding\r\n SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach((element) => {\r\n const actualPadding = element.style.paddingRight;\r\n const calculatedPadding = window.getComputedStyle(element)['padding-right'];\r\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding);\r\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`;\r\n });\r\n\r\n // Adjust sticky content margin\r\n SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach((element) => {\r\n const actualMargin = element.style.marginRight;\r\n const calculatedMargin = window.getComputedStyle(element)['margin-right'];\r\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin);\r\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`;\r\n });\r\n\r\n // Adjust body padding\r\n const actualPadding = document.body.style.paddingRight;\r\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right'];\r\n\r\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding);\r\n document.body.style.paddingRight = `${\r\n parseFloat(calculatedPadding) + this._scrollbarWidth\r\n }px`;\r\n }\r\n\r\n document.body.classList.add(CLASS_NAME_OPEN);\r\n }\r\n\r\n _resetScrollbar() {\r\n // Restore fixed content padding\r\n SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach((element) => {\r\n const padding = Manipulator.getDataAttribute(element, 'padding-right');\r\n if (typeof padding !== 'undefined') {\r\n Manipulator.removeDataAttribute(element, 'padding-right');\r\n element.style.paddingRight = padding;\r\n }\r\n });\r\n\r\n // Restore sticky content and navbar-toggler margin\r\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`).forEach((element) => {\r\n const margin = Manipulator.getDataAttribute(element, 'margin-right');\r\n if (typeof margin !== 'undefined') {\r\n Manipulator.removeDataAttribute(element, 'margin-right');\r\n element.style.marginRight = margin;\r\n }\r\n });\r\n\r\n // Restore body padding\r\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right');\r\n if (typeof padding === 'undefined') {\r\n document.body.style.paddingRight = '';\r\n } else {\r\n Manipulator.removeDataAttribute(document.body, 'padding-right');\r\n document.body.style.paddingRight = padding;\r\n }\r\n }\r\n\r\n _getScrollbarWidth() {\r\n // thx d.walsh\r\n const scrollDiv = document.createElement('div');\r\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\r\n document.body.appendChild(scrollDiv);\r\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\r\n document.body.removeChild(scrollDiv);\r\n return scrollbarWidth;\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config, relatedTarget) {\r\n return this.each(function () {\r\n let data = Data.getData(this, DATA_KEY);\r\n const _config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this),\r\n ...(typeof config === 'object' && config ? config : {}),\r\n };\r\n\r\n if (!data) {\r\n data = new Modal(this, _config);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](relatedTarget);\r\n } else if (_config.show) {\r\n data.show(relatedTarget);\r\n }\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (this.tagName === 'A' || this.tagName === 'AREA') {\r\n event.preventDefault();\r\n }\r\n\r\n EventHandler.one(target, EVENT_SHOW, (showEvent) => {\r\n if (showEvent.defaultPrevented) {\r\n // only register focus restorer if modal will actually get shown\r\n return;\r\n }\r\n\r\n EventHandler.one(target, EVENT_HIDDEN, () => {\r\n if (isVisible(this)) {\r\n this.focus();\r\n }\r\n });\r\n });\r\n\r\n let data = Data.getData(target, DATA_KEY);\r\n if (!data) {\r\n const config = {\r\n ...Manipulator.getDataAttributes(target),\r\n ...Manipulator.getDataAttributes(this),\r\n };\r\n\r\n data = new Modal(target, config);\r\n }\r\n\r\n data.show(this);\r\n});\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .modal to jQuery only if jQuery is present\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Modal.jQueryInterface;\r\n $.fn[NAME].Constructor = Modal;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Modal.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Modal;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): util/sanitizer.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst uriAttrs = [\r\n 'background',\r\n 'cite',\r\n 'href',\r\n 'itemtype',\r\n 'longdesc',\r\n 'poster',\r\n 'src',\r\n 'xlink:href',\r\n];\r\n\r\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\r\n\r\n/**\r\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\r\n *\r\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\r\n\r\n/**\r\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\r\n *\r\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\nconst 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;\r\n\r\nconst allowedAttribute = (attr, allowedAttributeList) => {\r\n const attrName = attr.nodeName.toLowerCase();\r\n\r\n if (allowedAttributeList.indexOf(attrName) !== -1) {\r\n if (uriAttrs.indexOf(attrName) !== -1) {\r\n return Boolean(\r\n attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp);\r\n\r\n // Check if a regular expression validates the attribute.\r\n for (let i = 0, len = regExp.length; i < len; i++) {\r\n if (attrName.match(regExp[i])) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const DefaultWhitelist = {\r\n // Global attributes allowed on any supplied element below.\r\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\r\n a: ['target', 'href', 'title', 'rel'],\r\n area: [],\r\n b: [],\r\n br: [],\r\n col: [],\r\n code: [],\r\n div: [],\r\n em: [],\r\n hr: [],\r\n h1: [],\r\n h2: [],\r\n h3: [],\r\n h4: [],\r\n h5: [],\r\n h6: [],\r\n i: [],\r\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\r\n li: [],\r\n ol: [],\r\n p: [],\r\n pre: [],\r\n s: [],\r\n small: [],\r\n span: [],\r\n sub: [],\r\n sup: [],\r\n strong: [],\r\n u: [],\r\n ul: [],\r\n};\r\n\r\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\r\n if (!unsafeHtml.length) {\r\n return unsafeHtml;\r\n }\r\n\r\n if (sanitizeFn && typeof sanitizeFn === 'function') {\r\n return sanitizeFn(unsafeHtml);\r\n }\r\n\r\n const domParser = new window.DOMParser();\r\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\r\n const whitelistKeys = Object.keys(whiteList);\r\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\r\n\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const el = elements[i];\r\n const elName = el.nodeName.toLowerCase();\r\n\r\n if (whitelistKeys.indexOf(elName) === -1) {\r\n el.parentNode.removeChild(el);\r\n\r\n continue;\r\n }\r\n\r\n const attributeList = [].concat(...el.attributes);\r\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\r\n\r\n attributeList.forEach((attr) => {\r\n if (!allowedAttribute(attr, whitelistedAttributes)) {\r\n el.removeAttribute(attr.nodeName);\r\n }\r\n });\r\n }\r\n\r\n return createdDocument.body.innerHTML;\r\n}\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): tooltip.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n TRANSITION_END,\r\n emulateTransitionEnd,\r\n findShadowRoot,\r\n getTransitionDurationFromElement,\r\n getUID,\r\n isElement,\r\n noop,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport { DefaultWhitelist, sanitizeHtml } from './util/sanitizer';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport Popper from 'popper.js';\r\nimport SelectorEngine from './dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'tooltip';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.tooltip';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst CLASS_PREFIX = 'bs-tooltip';\r\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g');\r\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\r\n\r\nconst DefaultType = {\r\n animation: 'boolean',\r\n template: 'string',\r\n title: '(string|element|function)',\r\n trigger: 'string',\r\n delay: '(number|object)',\r\n html: 'boolean',\r\n selector: '(string|boolean)',\r\n placement: '(string|function)',\r\n offset: '(number|string|function)',\r\n container: '(string|element|boolean)',\r\n fallbackPlacement: '(string|array)',\r\n boundary: '(string|element)',\r\n sanitize: 'boolean',\r\n sanitizeFn: '(null|function)',\r\n whiteList: 'object',\r\n popperConfig: '(null|object)',\r\n};\r\n\r\nconst AttachmentMap = {\r\n AUTO: 'auto',\r\n TOP: 'top',\r\n RIGHT: 'right',\r\n BOTTOM: 'bottom',\r\n LEFT: 'left',\r\n};\r\n\r\nconst Default = {\r\n animation: true,\r\n template:\r\n '<div class=\"tooltip\" role=\"tooltip\">' +\r\n '<div class=\"tooltip-arrow\"></div>' +\r\n '<div class=\"tooltip-inner\"></div></div>',\r\n trigger: 'hover focus',\r\n title: '',\r\n delay: 0,\r\n html: false,\r\n selector: false,\r\n placement: 'top',\r\n offset: 0,\r\n container: false,\r\n fallbackPlacement: 'flip',\r\n boundary: 'scrollParent',\r\n sanitize: true,\r\n sanitizeFn: null,\r\n whiteList: DefaultWhitelist,\r\n popperConfig: null,\r\n};\r\n\r\nconst Event = {\r\n HIDE: `hide${EVENT_KEY}`,\r\n HIDDEN: `hidden${EVENT_KEY}`,\r\n SHOW: `show${EVENT_KEY}`,\r\n SHOWN: `shown${EVENT_KEY}`,\r\n INSERTED: `inserted${EVENT_KEY}`,\r\n CLICK: `click${EVENT_KEY}`,\r\n FOCUSIN: `focusin${EVENT_KEY}`,\r\n FOCUSOUT: `focusout${EVENT_KEY}`,\r\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\r\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\r\n};\r\n\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_MODAL = 'modal';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst HOVER_STATE_SHOW = 'show';\r\nconst HOVER_STATE_OUT = 'out';\r\n\r\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\r\n\r\nconst TRIGGER_HOVER = 'hover';\r\nconst TRIGGER_FOCUS = 'focus';\r\nconst TRIGGER_CLICK = 'click';\r\nconst TRIGGER_MANUAL = 'manual';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Tooltip {\r\n constructor(element, config) {\r\n if (typeof Popper === 'undefined') {\r\n throw new TypeError(\"Bootstrap's tooltips require Popper.js (https://popper.js.org)\");\r\n }\r\n\r\n // private\r\n this._isEnabled = true;\r\n this._timeout = 0;\r\n this._hoverState = '';\r\n this._activeTrigger = {};\r\n this._popper = null;\r\n\r\n // Protected\r\n this.element = element;\r\n this.config = this._getConfig(config);\r\n this.tip = null;\r\n\r\n this._setListeners();\r\n Data.setData(element, this.constructor.DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n static get DATA_KEY() {\r\n return DATA_KEY;\r\n }\r\n\r\n static get Event() {\r\n return Event;\r\n }\r\n\r\n static get EVENT_KEY() {\r\n return EVENT_KEY;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n // Public\r\n\r\n enable() {\r\n this._isEnabled = true;\r\n }\r\n\r\n disable() {\r\n this._isEnabled = false;\r\n }\r\n\r\n toggleEnabled() {\r\n this._isEnabled = !this._isEnabled;\r\n }\r\n\r\n toggle(event) {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n if (event) {\r\n const dataKey = this.constructor.DATA_KEY;\r\n let context = Data.getData(event.target, dataKey);\r\n\r\n if (!context) {\r\n context = new this.constructor(event.target, this._getDelegateConfig());\r\n Data.setData(event.target, dataKey, context);\r\n }\r\n\r\n context._activeTrigger.click = !context._activeTrigger.click;\r\n\r\n if (context._isWithActiveTrigger()) {\r\n context._enter(null, context);\r\n } else {\r\n context._leave(null, context);\r\n }\r\n } else {\r\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\r\n this._leave(null, this);\r\n return;\r\n }\r\n\r\n this._enter(null, this);\r\n }\r\n }\r\n\r\n dispose() {\r\n clearTimeout(this._timeout);\r\n\r\n Data.removeData(this.element, this.constructor.DATA_KEY);\r\n\r\n EventHandler.off(this.element, this.constructor.EVENT_KEY);\r\n EventHandler.off(\r\n this.element.closest(`.${CLASS_NAME_MODAL}`),\r\n 'hide.bs.modal',\r\n this._hideModalHandler\r\n );\r\n\r\n if (this.tip) {\r\n this.tip.parentNode.removeChild(this.tip);\r\n }\r\n\r\n this._isEnabled = null;\r\n this._timeout = null;\r\n this._hoverState = null;\r\n this._activeTrigger = null;\r\n if (this._popper) {\r\n this._popper.destroy();\r\n }\r\n\r\n this._popper = null;\r\n this.element = null;\r\n this.config = null;\r\n this.tip = null;\r\n }\r\n\r\n show() {\r\n if (this.element.style.display === 'none') {\r\n throw new Error('Please use show on visible elements');\r\n }\r\n\r\n if (this.isWithContent() && this._isEnabled) {\r\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);\r\n const shadowRoot = findShadowRoot(this.element);\r\n const isInTheDom =\r\n shadowRoot === null\r\n ? this.element.ownerDocument.documentElement.contains(this.element)\r\n : shadowRoot.contains(this.element);\r\n\r\n if (showEvent.defaultPrevented || !isInTheDom) {\r\n return;\r\n }\r\n\r\n const tip = this.getTipElement();\r\n const tipId = getUID(this.constructor.NAME);\r\n\r\n tip.setAttribute('id', tipId);\r\n this.element.setAttribute('aria-describedby', tipId);\r\n\r\n this.setContent();\r\n\r\n if (this.config.animation) {\r\n tip.classList.add(CLASS_NAME_FADE);\r\n }\r\n\r\n const placement =\r\n typeof this.config.placement === 'function'\r\n ? this.config.placement.call(this, tip, this.element)\r\n : this.config.placement;\r\n\r\n const attachment = this._getAttachment(placement);\r\n this._addAttachmentClass(attachment);\r\n\r\n const container = this._getContainer();\r\n Data.setData(tip, this.constructor.DATA_KEY, this);\r\n\r\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\r\n container.appendChild(tip);\r\n }\r\n\r\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED);\r\n\r\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));\r\n\r\n tip.classList.add(CLASS_NAME_SHOW);\r\n\r\n // If this is a touch-enabled device we add extra\r\n // empty mouseover listeners to the body's immediate children;\r\n // only needed because of broken event delegation on iOS\r\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\r\n if ('ontouchstart' in document.documentElement) {\r\n [].concat(...document.body.children).forEach((element) => {\r\n EventHandler.on(element, 'mouseover', noop());\r\n });\r\n }\r\n\r\n const complete = () => {\r\n if (this.config.animation) {\r\n this._fixTransition();\r\n }\r\n\r\n const prevHoverState = this._hoverState;\r\n this._hoverState = null;\r\n\r\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN);\r\n\r\n if (prevHoverState === HOVER_STATE_OUT) {\r\n this._leave(null, this);\r\n }\r\n };\r\n\r\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\r\n const transitionDuration = getTransitionDurationFromElement(this.tip);\r\n EventHandler.one(this.tip, TRANSITION_END, complete);\r\n emulateTransitionEnd(this.tip, transitionDuration);\r\n } else {\r\n complete();\r\n }\r\n }\r\n }\r\n\r\n hide() {\r\n const tip = this.getTipElement();\r\n const complete = () => {\r\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\r\n tip.parentNode.removeChild(tip);\r\n }\r\n\r\n this._cleanTipClass();\r\n this.element.removeAttribute('aria-describedby');\r\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN);\r\n this._popper.destroy();\r\n };\r\n\r\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE);\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n tip.classList.remove(CLASS_NAME_SHOW);\r\n\r\n // If this is a touch-enabled device we remove the extra\r\n // empty mouseover listeners we added for iOS support\r\n if ('ontouchstart' in document.documentElement) {\r\n []\r\n .concat(...document.body.children)\r\n .forEach((element) => EventHandler.off(element, 'mouseover', noop));\r\n }\r\n\r\n this._activeTrigger[TRIGGER_CLICK] = false;\r\n this._activeTrigger[TRIGGER_FOCUS] = false;\r\n this._activeTrigger[TRIGGER_HOVER] = false;\r\n\r\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\r\n const transitionDuration = getTransitionDurationFromElement(tip);\r\n\r\n EventHandler.one(tip, TRANSITION_END, complete);\r\n emulateTransitionEnd(tip, transitionDuration);\r\n } else {\r\n complete();\r\n }\r\n\r\n this._hoverState = '';\r\n }\r\n\r\n update() {\r\n if (this._popper !== null) {\r\n this._popper.scheduleUpdate();\r\n }\r\n }\r\n\r\n // Protected\r\n\r\n isWithContent() {\r\n return Boolean(this.getTitle());\r\n }\r\n\r\n getTipElement() {\r\n if (this.tip) {\r\n return this.tip;\r\n }\r\n\r\n const element = document.createElement('div');\r\n element.innerHTML = this.config.template;\r\n\r\n this.tip = element.children[0];\r\n return this.tip;\r\n }\r\n\r\n setContent() {\r\n const tip = this.getTipElement();\r\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());\r\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\r\n }\r\n\r\n setElementContent(element, content) {\r\n if (element === null) {\r\n return;\r\n }\r\n\r\n if (typeof content === 'object' && isElement(content)) {\r\n if (content.jquery) {\r\n content = content[0];\r\n }\r\n\r\n // content is a DOM node or a jQuery\r\n if (this.config.html) {\r\n if (content.parentNode !== element) {\r\n element.innerHTML = '';\r\n element.appendChild(content);\r\n }\r\n } else {\r\n element.textContent = content.textContent;\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this.config.html) {\r\n if (this.config.sanitize) {\r\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\r\n }\r\n\r\n element.innerHTML = content;\r\n } else {\r\n element.textContent = content;\r\n }\r\n }\r\n\r\n getTitle() {\r\n let title = this.element.getAttribute('data-original-title');\r\n\r\n if (!title) {\r\n title =\r\n typeof this.config.title === 'function'\r\n ? this.config.title.call(this.element)\r\n : this.config.title;\r\n }\r\n\r\n return title;\r\n }\r\n\r\n // Private\r\n\r\n _getPopperConfig(attachment) {\r\n const defaultBsConfig = {\r\n placement: attachment,\r\n modifiers: {\r\n offset: this._getOffset(),\r\n flip: {\r\n behavior: this.config.fallbackPlacement,\r\n },\r\n arrow: {\r\n element: `.${this.constructor.NAME}-arrow`,\r\n },\r\n preventOverflow: {\r\n boundariesElement: this.config.boundary,\r\n },\r\n },\r\n onCreate: (data) => {\r\n if (data.originalPlacement !== data.placement) {\r\n this._handlePopperPlacementChange(data);\r\n }\r\n },\r\n onUpdate: (data) => this._handlePopperPlacementChange(data),\r\n };\r\n\r\n return {\r\n ...defaultBsConfig,\r\n ...this.config.popperConfig,\r\n };\r\n }\r\n\r\n _addAttachmentClass(attachment) {\r\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`);\r\n }\r\n\r\n _getOffset() {\r\n const offset = {};\r\n\r\n if (typeof this.config.offset === 'function') {\r\n offset.fn = (data) => {\r\n data.offsets = {\r\n ...data.offsets,\r\n ...(this.config.offset(data.offsets, this.element) || {}),\r\n };\r\n\r\n return data;\r\n };\r\n } else {\r\n offset.offset = this.config.offset;\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n _getContainer() {\r\n if (this.config.container === false) {\r\n return document.body;\r\n }\r\n\r\n if (isElement(this.config.container)) {\r\n return this.config.container;\r\n }\r\n\r\n return SelectorEngine.findOne(this.config.container);\r\n }\r\n\r\n _getAttachment(placement) {\r\n return AttachmentMap[placement.toUpperCase()];\r\n }\r\n\r\n _setListeners() {\r\n const triggers = this.config.trigger.split(' ');\r\n\r\n triggers.forEach((trigger) => {\r\n if (trigger === 'click') {\r\n EventHandler.on(this.element, this.constructor.Event.CLICK, this.config.selector, (event) =>\r\n this.toggle(event)\r\n );\r\n } else if (trigger !== TRIGGER_MANUAL) {\r\n const eventIn =\r\n trigger === TRIGGER_HOVER\r\n ? this.constructor.Event.MOUSEENTER\r\n : this.constructor.Event.FOCUSIN;\r\n const eventOut =\r\n trigger === TRIGGER_HOVER\r\n ? this.constructor.Event.MOUSELEAVE\r\n : this.constructor.Event.FOCUSOUT;\r\n\r\n EventHandler.on(this.element, eventIn, this.config.selector, (event) => this._enter(event));\r\n EventHandler.on(this.element, eventOut, this.config.selector, (event) =>\r\n this._leave(event)\r\n );\r\n }\r\n });\r\n\r\n this._hideModalHandler = () => {\r\n if (this.element) {\r\n this.hide();\r\n }\r\n };\r\n\r\n EventHandler.on(\r\n this.element.closest(`.${CLASS_NAME_MODAL}`),\r\n 'hide.bs.modal',\r\n this._hideModalHandler\r\n );\r\n\r\n if (this.config.selector) {\r\n this.config = {\r\n ...this.config,\r\n trigger: 'manual',\r\n selector: '',\r\n };\r\n } else {\r\n this._fixTitle();\r\n }\r\n }\r\n\r\n _fixTitle() {\r\n const titleType = typeof this.element.getAttribute('data-original-title');\r\n\r\n if (this.element.getAttribute('title') || titleType !== 'string') {\r\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\r\n\r\n this.element.setAttribute('title', '');\r\n }\r\n }\r\n\r\n _enter(event, context) {\r\n const dataKey = this.constructor.DATA_KEY;\r\n context = context || Data.getData(event.target, dataKey);\r\n\r\n if (!context) {\r\n context = new this.constructor(event.target, this._getDelegateConfig());\r\n Data.setData(event.target, dataKey, context);\r\n }\r\n\r\n if (event) {\r\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\r\n }\r\n\r\n if (\r\n context.getTipElement().classList.contains(CLASS_NAME_SHOW) ||\r\n context._hoverState === HOVER_STATE_SHOW\r\n ) {\r\n context._hoverState = HOVER_STATE_SHOW;\r\n return;\r\n }\r\n\r\n clearTimeout(context._timeout);\r\n\r\n context._hoverState = HOVER_STATE_SHOW;\r\n\r\n if (!context.config.delay || !context.config.delay.show) {\r\n context.show();\r\n return;\r\n }\r\n\r\n context._timeout = setTimeout(() => {\r\n if (context._hoverState === HOVER_STATE_SHOW) {\r\n context.show();\r\n }\r\n }, context.config.delay.show);\r\n }\r\n\r\n _leave(event, context) {\r\n const dataKey = this.constructor.DATA_KEY;\r\n context = context || Data.getData(event.target, dataKey);\r\n\r\n if (!context) {\r\n context = new this.constructor(event.target, this._getDelegateConfig());\r\n Data.setData(event.target, dataKey, context);\r\n }\r\n\r\n if (event) {\r\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\r\n }\r\n\r\n if (context._isWithActiveTrigger()) {\r\n return;\r\n }\r\n\r\n clearTimeout(context._timeout);\r\n\r\n context._hoverState = HOVER_STATE_OUT;\r\n\r\n if (!context.config.delay || !context.config.delay.hide) {\r\n context.hide();\r\n return;\r\n }\r\n\r\n context._timeout = setTimeout(() => {\r\n if (context._hoverState === HOVER_STATE_OUT) {\r\n context.hide();\r\n }\r\n }, context.config.delay.hide);\r\n }\r\n\r\n _isWithActiveTrigger() {\r\n for (const trigger in this._activeTrigger) {\r\n if (this._activeTrigger[trigger]) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n _getConfig(config) {\r\n const dataAttributes = Manipulator.getDataAttributes(this.element);\r\n\r\n Object.keys(dataAttributes).forEach((dataAttr) => {\r\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\r\n delete dataAttributes[dataAttr];\r\n }\r\n });\r\n\r\n if (config && typeof config.container === 'object' && config.container.jquery) {\r\n config.container = config.container[0];\r\n }\r\n\r\n config = {\r\n ...this.constructor.Default,\r\n ...dataAttributes,\r\n ...(typeof config === 'object' && config ? config : {}),\r\n };\r\n\r\n if (typeof config.delay === 'number') {\r\n config.delay = {\r\n show: config.delay,\r\n hide: config.delay,\r\n };\r\n }\r\n\r\n if (typeof config.title === 'number') {\r\n config.title = config.title.toString();\r\n }\r\n\r\n if (typeof config.content === 'number') {\r\n config.content = config.content.toString();\r\n }\r\n\r\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\r\n\r\n if (config.sanitize) {\r\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\r\n }\r\n\r\n return config;\r\n }\r\n\r\n _getDelegateConfig() {\r\n const config = {};\r\n\r\n if (this.config) {\r\n for (const key in this.config) {\r\n if (this.constructor.Default[key] !== this.config[key]) {\r\n config[key] = this.config[key];\r\n }\r\n }\r\n }\r\n\r\n return config;\r\n }\r\n\r\n _cleanTipClass() {\r\n const tip = this.getTipElement();\r\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);\r\n if (tabClass !== null && tabClass.length > 0) {\r\n tabClass.map((token) => token.trim()).forEach((tClass) => tip.classList.remove(tClass));\r\n }\r\n }\r\n\r\n _handlePopperPlacementChange(popperData) {\r\n const popperInstance = popperData.instance;\r\n this.tip = popperInstance.popper;\r\n this._cleanTipClass();\r\n this._addAttachmentClass(this._getAttachment(popperData.placement));\r\n }\r\n\r\n _fixTransition() {\r\n const tip = this.getTipElement();\r\n const initConfigAnimation = this.config.animation;\r\n if (tip.getAttribute('x-placement') !== null) {\r\n return;\r\n }\r\n\r\n tip.classList.remove(CLASS_NAME_FADE);\r\n this.config.animation = false;\r\n this.hide();\r\n this.show();\r\n this.config.animation = initConfigAnimation;\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n let data = Data.getData(this, DATA_KEY);\r\n const _config = typeof config === 'object' && config;\r\n\r\n if (!data && /dispose|hide/.test(config)) {\r\n return;\r\n }\r\n\r\n if (!data) {\r\n data = new Tooltip(this, _config);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .tooltip to jQuery only if jQuery is present\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Tooltip.jQueryInterface;\r\n $.fn[NAME].Constructor = Tooltip;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Tooltip.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Tooltip;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): popover.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getjQuery } from './util/index';\r\nimport Data from './dom/data';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport Tooltip from './tooltip';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'popover';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.popover';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst CLASS_PREFIX = 'bs-popover';\r\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g');\r\n\r\nconst Default = {\r\n ...Tooltip.Default,\r\n placement: 'right',\r\n trigger: 'click',\r\n content: '',\r\n template:\r\n '<div class=\"popover\" role=\"tooltip\">' +\r\n '<div class=\"popover-arrow\"></div>' +\r\n '<h3 class=\"popover-header\"></h3>' +\r\n '<div class=\"popover-body\"></div></div>',\r\n};\r\n\r\nconst DefaultType = {\r\n ...Tooltip.DefaultType,\r\n content: '(string|element|function)',\r\n};\r\n\r\nconst Event = {\r\n HIDE: `hide${EVENT_KEY}`,\r\n HIDDEN: `hidden${EVENT_KEY}`,\r\n SHOW: `show${EVENT_KEY}`,\r\n SHOWN: `shown${EVENT_KEY}`,\r\n INSERTED: `inserted${EVENT_KEY}`,\r\n CLICK: `click${EVENT_KEY}`,\r\n FOCUSIN: `focusin${EVENT_KEY}`,\r\n FOCUSOUT: `focusout${EVENT_KEY}`,\r\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\r\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\r\n};\r\n\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst SELECTOR_TITLE = '.popover-header';\r\nconst SELECTOR_CONTENT = '.popover-body';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Popover extends Tooltip {\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n static get DATA_KEY() {\r\n return DATA_KEY;\r\n }\r\n\r\n static get Event() {\r\n return Event;\r\n }\r\n\r\n static get EVENT_KEY() {\r\n return EVENT_KEY;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n // Overrides\r\n\r\n isWithContent() {\r\n return this.getTitle() || this._getContent();\r\n }\r\n\r\n setContent() {\r\n const tip = this.getTipElement();\r\n\r\n // we use append for html objects to maintain js events\r\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle());\r\n let content = this._getContent();\r\n if (typeof content === 'function') {\r\n content = content.call(this.element);\r\n }\r\n\r\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);\r\n\r\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\r\n }\r\n\r\n _addAttachmentClass(attachment) {\r\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`);\r\n }\r\n\r\n // Private\r\n\r\n _getContent() {\r\n return this.element.getAttribute('data-content') || this.config.content;\r\n }\r\n\r\n _cleanTipClass() {\r\n const tip = this.getTipElement();\r\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);\r\n if (tabClass !== null && tabClass.length > 0) {\r\n tabClass.map((token) => token.trim()).forEach((tClass) => tip.classList.remove(tClass));\r\n }\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n let data = Data.getData(this, DATA_KEY);\r\n const _config = typeof config === 'object' ? config : null;\r\n\r\n if (!data && /dispose|hide/.test(config)) {\r\n return;\r\n }\r\n\r\n if (!data) {\r\n data = new Popover(this, _config);\r\n Data.setData(this, DATA_KEY, data);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Popover.jQueryInterface;\r\n $.fn[NAME].Constructor = Popover;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Popover.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Popover;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): scrollspy.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n getSelectorFromElement,\r\n getUID,\r\n isElement,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'scrollspy';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.scrollspy';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst Default = {\r\n offset: 10,\r\n method: 'auto',\r\n target: '',\r\n};\r\n\r\nconst DefaultType = {\r\n offset: 'number',\r\n method: 'string',\r\n target: '(string|element)',\r\n};\r\n\r\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`;\r\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\n\r\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\r\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\r\nconst SELECTOR_NAV_LINKS = '.nav-link';\r\nconst SELECTOR_NAV_ITEMS = '.nav-item';\r\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\r\nconst SELECTOR_DROPDOWN = '.dropdown';\r\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\r\n\r\nconst METHOD_OFFSET = 'offset';\r\nconst METHOD_POSITION = 'position';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass ScrollSpy {\r\n constructor(element, config) {\r\n this._element = element;\r\n this._scrollElement = element.tagName === 'BODY' ? window : element;\r\n this._config = this._getConfig(config);\r\n this._selector =\r\n `${this._config.target} ${SELECTOR_NAV_LINKS},` +\r\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\r\n `${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`;\r\n this._offsets = [];\r\n this._targets = [];\r\n this._activeTarget = null;\r\n this._scrollHeight = 0;\r\n\r\n EventHandler.on(this._scrollElement, EVENT_SCROLL, (event) => this._process(event));\r\n\r\n this.refresh();\r\n this._process();\r\n\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n // Public\r\n\r\n refresh() {\r\n const autoMethod =\r\n this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\r\n\r\n const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\r\n\r\n const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\r\n\r\n this._offsets = [];\r\n this._targets = [];\r\n\r\n this._scrollHeight = this._getScrollHeight();\r\n\r\n const targets = SelectorEngine.find(this._selector);\r\n\r\n targets\r\n .map((element) => {\r\n let target;\r\n const targetSelector = getSelectorFromElement(element);\r\n\r\n if (targetSelector) {\r\n target = SelectorEngine.findOne(targetSelector);\r\n }\r\n\r\n if (target) {\r\n const targetBCR = target.getBoundingClientRect();\r\n if (targetBCR.width || targetBCR.height) {\r\n return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];\r\n }\r\n }\r\n\r\n return null;\r\n })\r\n .filter((item) => item)\r\n .sort((a, b) => a[0] - b[0])\r\n .forEach((item) => {\r\n this._offsets.push(item[0]);\r\n this._targets.push(item[1]);\r\n });\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n EventHandler.off(this._scrollElement, EVENT_KEY);\r\n\r\n this._element = null;\r\n this._scrollElement = null;\r\n this._config = null;\r\n this._selector = null;\r\n this._offsets = null;\r\n this._targets = null;\r\n this._activeTarget = null;\r\n this._scrollHeight = null;\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...(typeof config === 'object' && config ? config : {}),\r\n };\r\n\r\n if (typeof config.target !== 'string' && isElement(config.target)) {\r\n let { id } = config.target;\r\n if (!id) {\r\n id = getUID(NAME);\r\n config.target.id = id;\r\n }\r\n\r\n config.target = `#${id}`;\r\n }\r\n\r\n typeCheckConfig(NAME, config, DefaultType);\r\n\r\n return config;\r\n }\r\n\r\n _getScrollTop() {\r\n return this._scrollElement === window\r\n ? this._scrollElement.pageYOffset\r\n : this._scrollElement.scrollTop;\r\n }\r\n\r\n _getScrollHeight() {\r\n return (\r\n this._scrollElement.scrollHeight ||\r\n Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)\r\n );\r\n }\r\n\r\n _getOffsetHeight() {\r\n return this._scrollElement === window\r\n ? window.innerHeight\r\n : this._scrollElement.getBoundingClientRect().height;\r\n }\r\n\r\n _process() {\r\n const scrollTop = this._getScrollTop() + this._config.offset;\r\n const scrollHeight = this._getScrollHeight();\r\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\r\n\r\n if (this._scrollHeight !== scrollHeight) {\r\n this.refresh();\r\n }\r\n\r\n if (scrollTop >= maxScroll) {\r\n const target = this._targets[this._targets.length - 1];\r\n\r\n if (this._activeTarget !== target) {\r\n this._activate(target);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\r\n this._activeTarget = null;\r\n this._clear();\r\n return;\r\n }\r\n\r\n for (let i = this._offsets.length; i--; ) {\r\n const isActiveTarget =\r\n this._activeTarget !== this._targets[i] &&\r\n scrollTop >= this._offsets[i] &&\r\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\r\n\r\n if (isActiveTarget) {\r\n this._activate(this._targets[i]);\r\n }\r\n }\r\n }\r\n\r\n _activate(target) {\r\n this._activeTarget = target;\r\n\r\n this._clear();\r\n\r\n const queries = this._selector\r\n .split(',')\r\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`);\r\n\r\n const link = SelectorEngine.findOne(queries.join(','));\r\n\r\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\r\n SelectorEngine.findOne(\r\n SELECTOR_DROPDOWN_TOGGLE,\r\n link.closest(SELECTOR_DROPDOWN)\r\n ).classList.add(CLASS_NAME_ACTIVE);\r\n\r\n link.classList.add(CLASS_NAME_ACTIVE);\r\n } else {\r\n // Set triggered link as active\r\n link.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach((listGroup) => {\r\n // Set triggered links parents as active\r\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\r\n SelectorEngine.prev(\r\n listGroup,\r\n `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\r\n ).forEach((item) => item.classList.add(CLASS_NAME_ACTIVE));\r\n\r\n // Handle special case when .nav-link is inside .nav-item\r\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach((navItem) => {\r\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach((item) =>\r\n item.classList.add(CLASS_NAME_ACTIVE)\r\n );\r\n });\r\n });\r\n }\r\n\r\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\r\n relatedTarget: target,\r\n });\r\n }\r\n\r\n _clear() {\r\n SelectorEngine.find(this._selector)\r\n .filter((node) => node.classList.contains(CLASS_NAME_ACTIVE))\r\n .forEach((node) => node.classList.remove(CLASS_NAME_ACTIVE));\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n let data = Data.getData(this, DATA_KEY);\r\n const _config = typeof config === 'object' && config;\r\n\r\n if (!data) {\r\n data = new ScrollSpy(this, _config);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n SelectorEngine.find(SELECTOR_DATA_SPY).forEach(\r\n (spy) => new ScrollSpy(spy, Manipulator.getDataAttributes(spy))\r\n );\r\n});\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = ScrollSpy.jQueryInterface;\r\n $.fn[NAME].Constructor = ScrollSpy;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return ScrollSpy.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default ScrollSpy;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): tab.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n TRANSITION_END,\r\n emulateTransitionEnd,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n reflow,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport SelectorEngine from './dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'tab';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.tab';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_DISABLED = 'disabled';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst SELECTOR_DROPDOWN = '.dropdown';\r\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\r\nconst SELECTOR_ACTIVE = '.active';\r\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active';\r\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\r\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\r\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Tab {\r\n constructor(element) {\r\n this._element = element;\r\n\r\n Data.setData(this._element, DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n // Public\r\n\r\n show() {\r\n if (\r\n (this._element.parentNode &&\r\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\r\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\r\n this._element.classList.contains(CLASS_NAME_DISABLED)\r\n ) {\r\n return;\r\n }\r\n\r\n let previous;\r\n const target = getElementFromSelector(this._element);\r\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);\r\n\r\n if (listElement) {\r\n const itemSelector =\r\n listElement.nodeName === 'UL' || listElement.nodeName === 'OL'\r\n ? SELECTOR_ACTIVE_UL\r\n : SELECTOR_ACTIVE;\r\n previous = SelectorEngine.find(itemSelector, listElement);\r\n previous = previous[previous.length - 1];\r\n }\r\n\r\n let hideEvent = null;\r\n\r\n if (previous) {\r\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\r\n relatedTarget: this._element,\r\n });\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\r\n relatedTarget: previous,\r\n });\r\n\r\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\r\n return;\r\n }\r\n\r\n this._activate(this._element, listElement);\r\n\r\n const complete = () => {\r\n EventHandler.trigger(previous, EVENT_HIDDEN, {\r\n relatedTarget: this._element,\r\n });\r\n EventHandler.trigger(this._element, EVENT_SHOWN, {\r\n relatedTarget: previous,\r\n });\r\n };\r\n\r\n if (target) {\r\n this._activate(target, target.parentNode, complete);\r\n } else {\r\n complete();\r\n }\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n this._element = null;\r\n }\r\n\r\n // Private\r\n\r\n _activate(element, container, callback) {\r\n const activeElements =\r\n container && (container.nodeName === 'UL' || container.nodeName === 'OL')\r\n ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container)\r\n : SelectorEngine.children(container, SELECTOR_ACTIVE);\r\n\r\n const active = activeElements[0];\r\n const isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE);\r\n\r\n const complete = () => this._transitionComplete(element, active, callback);\r\n\r\n if (active && isTransitioning) {\r\n const transitionDuration = getTransitionDurationFromElement(active);\r\n active.classList.remove(CLASS_NAME_SHOW);\r\n\r\n EventHandler.one(active, TRANSITION_END, complete);\r\n emulateTransitionEnd(active, transitionDuration);\r\n } else {\r\n complete();\r\n }\r\n }\r\n\r\n _transitionComplete(element, active, callback) {\r\n if (active) {\r\n active.classList.remove(CLASS_NAME_ACTIVE);\r\n\r\n const dropdownChild = SelectorEngine.findOne(\r\n SELECTOR_DROPDOWN_ACTIVE_CHILD,\r\n active.parentNode\r\n );\r\n\r\n if (dropdownChild) {\r\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE);\r\n }\r\n\r\n if (active.getAttribute('role') === 'tab') {\r\n active.setAttribute('aria-selected', false);\r\n }\r\n }\r\n\r\n element.classList.add(CLASS_NAME_ACTIVE);\r\n if (element.getAttribute('role') === 'tab') {\r\n element.setAttribute('aria-selected', true);\r\n }\r\n\r\n reflow(element);\r\n\r\n if (element.classList.contains(CLASS_NAME_FADE)) {\r\n element.classList.add(CLASS_NAME_SHOW);\r\n }\r\n\r\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\r\n const dropdownElement = element.closest(SELECTOR_DROPDOWN);\r\n\r\n if (dropdownElement) {\r\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE).forEach((dropdown) =>\r\n dropdown.classList.add(CLASS_NAME_ACTIVE)\r\n );\r\n }\r\n\r\n element.setAttribute('aria-expanded', true);\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Data.getData(this, DATA_KEY) || new Tab(this);\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n event.preventDefault();\r\n\r\n const data = Data.getData(this, DATA_KEY) || new Tab(this);\r\n data.show();\r\n});\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .tab to jQuery only if jQuery is present\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Tab.jQueryInterface;\r\n $.fn[NAME].Constructor = Tab;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Tab.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Tab;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): toast.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n getjQuery,\r\n TRANSITION_END,\r\n emulateTransitionEnd,\r\n getTransitionDurationFromElement,\r\n reflow,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'toast';\r\nconst VERSION = '5.0.0-alpha1';\r\nconst DATA_KEY = 'bs.toast';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\n\r\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\n\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_HIDE = 'hide';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_SHOWING = 'showing';\r\n\r\nconst DefaultType = {\r\n animation: 'boolean',\r\n autohide: 'boolean',\r\n delay: 'number',\r\n};\r\n\r\nconst Default = {\r\n animation: true,\r\n autohide: true,\r\n delay: 500,\r\n};\r\n\r\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Toast {\r\n constructor(element, config) {\r\n this._element = element;\r\n this._config = this._getConfig(config);\r\n this._timeout = null;\r\n this._setListeners();\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n\r\n // Getters\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n // Public\r\n\r\n show() {\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (this._config.animation) {\r\n this._element.classList.add(CLASS_NAME_FADE);\r\n }\r\n\r\n const complete = () => {\r\n this._element.classList.remove(CLASS_NAME_SHOWING);\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n EventHandler.trigger(this._element, EVENT_SHOWN);\r\n\r\n if (this._config.autohide) {\r\n this._timeout = setTimeout(() => {\r\n this.hide();\r\n }, this._config.delay);\r\n }\r\n };\r\n\r\n this._element.classList.remove(CLASS_NAME_HIDE);\r\n reflow(this._element);\r\n this._element.classList.add(CLASS_NAME_SHOWING);\r\n if (this._config.animation) {\r\n const transitionDuration = getTransitionDurationFromElement(this._element);\r\n\r\n EventHandler.one(this._element, TRANSITION_END, complete);\r\n emulateTransitionEnd(this._element, transitionDuration);\r\n } else {\r\n complete();\r\n }\r\n }\r\n\r\n hide() {\r\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const complete = () => {\r\n this._element.classList.add(CLASS_NAME_HIDE);\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n };\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n if (this._config.animation) {\r\n const transitionDuration = getTransitionDurationFromElement(this._element);\r\n\r\n EventHandler.one(this._element, TRANSITION_END, complete);\r\n emulateTransitionEnd(this._element, transitionDuration);\r\n } else {\r\n complete();\r\n }\r\n }\r\n\r\n dispose() {\r\n clearTimeout(this._timeout);\r\n this._timeout = null;\r\n\r\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n }\r\n\r\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\r\n Data.removeData(this._element, DATA_KEY);\r\n\r\n this._element = null;\r\n this._config = null;\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' && config ? config : {}),\r\n };\r\n\r\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\r\n\r\n return config;\r\n }\r\n\r\n _setListeners() {\r\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide());\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n let data = Data.getData(this, DATA_KEY);\r\n const _config = typeof config === 'object' && config;\r\n\r\n if (!data) {\r\n data = new Toast(this, _config);\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](this);\r\n }\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\nconst $ = getjQuery();\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .toast to jQuery only if jQuery is present\r\n */\r\n/* istanbul ignore if */\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Toast.jQueryInterface;\r\n $.fn[NAME].Constructor = Toast;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Toast.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Toast;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): util/index.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst MAX_UID = 1000000;\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\nconst TRANSITION_END = 'transitionend';\r\n\r\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\r\nconst toType = (obj) => {\r\n if (obj === null || obj === undefined) {\r\n return `${obj}`;\r\n }\r\n\r\n return {}.toString\r\n .call(obj)\r\n .match(/\\s([a-z]+)/i)[1]\r\n .toLowerCase();\r\n};\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Public Util Api\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst getUID = (prefix) => {\r\n do {\r\n prefix += Math.floor(Math.random() * MAX_UID);\r\n } while (document.getElementById(prefix));\r\n\r\n return prefix;\r\n};\r\n\r\nconst getSelector = (element) => {\r\n let selector = element.getAttribute('data-target');\r\n\r\n if (!selector || selector === '#') {\r\n const hrefAttr = element.getAttribute('href');\r\n\r\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\r\n }\r\n\r\n return selector;\r\n};\r\n\r\nconst getSelectorFromElement = (element) => {\r\n const selector = getSelector(element);\r\n\r\n if (selector) {\r\n return document.querySelector(selector) ? selector : null;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getElementFromSelector = (element) => {\r\n const selector = getSelector(element);\r\n\r\n return selector ? document.querySelector(selector) : null;\r\n};\r\n\r\nconst getTransitionDurationFromElement = (element) => {\r\n if (!element) {\r\n return 0;\r\n }\r\n\r\n // Get transition-duration of the element\r\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element);\r\n\r\n const floatTransitionDuration = parseFloat(transitionDuration);\r\n const floatTransitionDelay = parseFloat(transitionDelay);\r\n\r\n // Return 0 if element or transition duration is not found\r\n if (!floatTransitionDuration && !floatTransitionDelay) {\r\n return 0;\r\n }\r\n\r\n // If multiple durations are defined, take the first\r\n transitionDuration = transitionDuration.split(',')[0];\r\n transitionDelay = transitionDelay.split(',')[0];\r\n\r\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\r\n};\r\n\r\nconst triggerTransitionEnd = (element) => {\r\n element.dispatchEvent(new Event(TRANSITION_END));\r\n};\r\n\r\nconst isElement = (obj) => (obj[0] || obj).nodeType;\r\n\r\nconst emulateTransitionEnd = (element, duration) => {\r\n let called = false;\r\n const durationPadding = 5;\r\n const emulatedDuration = duration + durationPadding;\r\n function listener() {\r\n called = true;\r\n element.removeEventListener(TRANSITION_END, listener);\r\n }\r\n\r\n element.addEventListener(TRANSITION_END, listener);\r\n setTimeout(() => {\r\n if (!called) {\r\n triggerTransitionEnd(element);\r\n }\r\n }, emulatedDuration);\r\n};\r\n\r\nconst typeCheckConfig = (componentName, config, configTypes) => {\r\n Object.keys(configTypes).forEach((property) => {\r\n const expectedTypes = configTypes[property];\r\n const value = config[property];\r\n const valueType = value && isElement(value) ? 'element' : toType(value);\r\n\r\n if (!new RegExp(expectedTypes).test(valueType)) {\r\n throw new Error(\r\n `${componentName.toUpperCase()}: ` +\r\n `Option \"${property}\" provided type \"${valueType}\" ` +\r\n `but expected type \"${expectedTypes}\".`\r\n );\r\n }\r\n });\r\n};\r\n\r\nconst isVisible = (element) => {\r\n if (!element) {\r\n return false;\r\n }\r\n\r\n if (element.style && element.parentNode && element.parentNode.style) {\r\n const elementStyle = getComputedStyle(element);\r\n const parentNodeStyle = getComputedStyle(element.parentNode);\r\n\r\n return (\r\n elementStyle.display !== 'none' &&\r\n parentNodeStyle.display !== 'none' &&\r\n elementStyle.visibility !== 'hidden'\r\n );\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst findShadowRoot = (element) => {\r\n if (!document.documentElement.attachShadow) {\r\n return null;\r\n }\r\n\r\n // Can find the shadow root otherwise it'll return the document\r\n if (typeof element.getRootNode === 'function') {\r\n const root = element.getRootNode();\r\n return root instanceof ShadowRoot ? root : null;\r\n }\r\n\r\n if (element instanceof ShadowRoot) {\r\n return element;\r\n }\r\n\r\n // when we don't find a shadow root\r\n if (!element.parentNode) {\r\n return null;\r\n }\r\n\r\n return findShadowRoot(element.parentNode);\r\n};\r\n\r\nconst noop = () => function () {};\r\n\r\nconst reflow = (element) => element.offsetHeight;\r\n\r\nconst getjQuery = () => {\r\n const { jQuery } = window;\r\n\r\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\r\n return jQuery;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst array = (collection) => {\r\n return Array.from(collection);\r\n};\r\n\r\nconst element = (tag) => {\r\n return document.createElement(tag);\r\n};\r\n\r\nexport {\r\n getjQuery,\r\n TRANSITION_END,\r\n getUID,\r\n getSelectorFromElement,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n triggerTransitionEnd,\r\n isElement,\r\n emulateTransitionEnd,\r\n typeCheckConfig,\r\n isVisible,\r\n findShadowRoot,\r\n noop,\r\n reflow,\r\n array,\r\n element,\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst mapData = (() => {\r\n const storeData = {};\r\n let id = 1;\r\n return {\r\n set(element, key, data) {\r\n if (typeof element.key === 'undefined') {\r\n element.key = {\r\n key,\r\n id,\r\n };\r\n id++;\r\n }\r\n\r\n storeData[element.key.id] = data;\r\n },\r\n get(element, key) {\r\n if (!element || typeof element.key === 'undefined') {\r\n return null;\r\n }\r\n\r\n const keyProperties = element.key;\r\n if (keyProperties.key === key) {\r\n return storeData[keyProperties.id];\r\n }\r\n\r\n return null;\r\n },\r\n delete(element, key) {\r\n if (typeof element.key === 'undefined') {\r\n return;\r\n }\r\n\r\n const keyProperties = element.key;\r\n if (keyProperties.key === key) {\r\n delete storeData[keyProperties.id];\r\n delete element.key;\r\n }\r\n },\r\n };\r\n})();\r\n\r\nconst Data = {\r\n setData(instance, key, data) {\r\n mapData.set(instance, key, data);\r\n },\r\n getData(instance, key) {\r\n return mapData.get(instance, key);\r\n },\r\n removeData(instance, key) {\r\n mapData.delete(instance, key);\r\n },\r\n};\r\n\r\nexport default Data;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/manipulator.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nfunction normalizeData(val) {\r\n if (val === 'true') {\r\n return true;\r\n }\r\n\r\n if (val === 'false') {\r\n return false;\r\n }\r\n\r\n if (val === Number(val).toString()) {\r\n return Number(val);\r\n }\r\n\r\n if (val === '' || val === 'null') {\r\n return null;\r\n }\r\n\r\n return val;\r\n}\r\n\r\nfunction normalizeDataKey(key) {\r\n return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);\r\n}\r\n\r\nconst Manipulator = {\r\n setDataAttribute(element, key, value) {\r\n element.setAttribute(`data-${normalizeDataKey(key)}`, value);\r\n },\r\n\r\n removeDataAttribute(element, key) {\r\n element.removeAttribute(`data-${normalizeDataKey(key)}`);\r\n },\r\n\r\n getDataAttributes(element) {\r\n if (!element) {\r\n return {};\r\n }\r\n\r\n const attributes = {\r\n ...element.dataset,\r\n };\r\n\r\n Object.keys(attributes).forEach((key) => {\r\n attributes[key] = normalizeData(attributes[key]);\r\n });\r\n\r\n return attributes;\r\n },\r\n\r\n getDataAttribute(element, key) {\r\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`));\r\n },\r\n\r\n offset(element) {\r\n const rect = element.getBoundingClientRect();\r\n\r\n return {\r\n top: rect.top + document.body.scrollTop,\r\n left: rect.left + document.body.scrollLeft,\r\n };\r\n },\r\n\r\n position(element) {\r\n return {\r\n top: element.offsetTop,\r\n left: element.offsetLeft,\r\n };\r\n },\r\n\r\n style(element, style) {\r\n Object.assign(element.style, style);\r\n },\r\n\r\n toggleClass(element, className) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n if (element.classList.contains(className)) {\r\n element.classList.remove(className);\r\n } else {\r\n element.classList.add(className);\r\n }\r\n },\r\n\r\n addClass(element, className) {\r\n if (element.classList.contains(className)) return;\r\n element.classList.add(className);\r\n },\r\n\r\n addStyle(element, style) {\r\n Object.keys(style).forEach((property) => {\r\n element.style[property] = style[property];\r\n });\r\n },\r\n};\r\n\r\nexport default Manipulator;\r\n","/* istanbul ignore file */\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/polyfill.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getUID } from '../util/index';\r\n\r\nlet findElements = Element.prototype.querySelectorAll;\r\nlet findElement = Element.prototype.querySelector;\r\n\r\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\r\nconst defaultPreventedPreservedOnDispatch = (() => {\r\n const e = new CustomEvent('Bootstrap', {\r\n cancelable: true,\r\n });\r\n\r\n const element = document.createElement('div');\r\n element.addEventListener('Bootstrap', () => null);\r\n\r\n e.preventDefault();\r\n element.dispatchEvent(e);\r\n return e.defaultPrevented;\r\n})();\r\n\r\nconst scopeSelectorRegex = /:scope\\b/;\r\nconst supportScopeQuery = (() => {\r\n const element = document.createElement('div');\r\n\r\n try {\r\n element.querySelectorAll(':scope *');\r\n } catch (_) {\r\n return false;\r\n }\r\n\r\n return true;\r\n})();\r\n\r\nif (!supportScopeQuery) {\r\n findElements = function (selector) {\r\n if (!scopeSelectorRegex.test(selector)) {\r\n return this.querySelectorAll(selector);\r\n }\r\n\r\n const hasId = Boolean(this.id);\r\n\r\n if (!hasId) {\r\n this.id = getUID('scope');\r\n }\r\n\r\n let nodeList = null;\r\n try {\r\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`);\r\n nodeList = this.querySelectorAll(selector);\r\n } finally {\r\n if (!hasId) {\r\n this.removeAttribute('id');\r\n }\r\n }\r\n\r\n return nodeList;\r\n };\r\n\r\n findElement = function (selector) {\r\n if (!scopeSelectorRegex.test(selector)) {\r\n return this.querySelector(selector);\r\n }\r\n\r\n const matches = find.call(this, selector);\r\n\r\n if (typeof matches[0] !== 'undefined') {\r\n return matches[0];\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n\r\nconst find = findElements;\r\nconst findOne = findElement;\r\n\r\nexport { find, findOne, defaultPreventedPreservedOnDispatch };\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/selector-engine.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { find as findFn, findOne } from './polyfill';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NODE_TEXT = 3;\r\n\r\nconst SelectorEngine = {\r\n closest(element, selector) {\r\n return element.closest(selector);\r\n },\r\n\r\n matches(element, selector) {\r\n return element.matches(selector);\r\n },\r\n\r\n find(selector, element = document.documentElement) {\r\n return [].concat(...findFn.call(element, selector));\r\n },\r\n\r\n findOne(selector, element = document.documentElement) {\r\n return findOne.call(element, selector);\r\n },\r\n\r\n children(element, selector) {\r\n const children = [].concat(...element.children);\r\n\r\n return children.filter((child) => child.matches(selector));\r\n },\r\n\r\n parents(element, selector) {\r\n const parents = [];\r\n\r\n let ancestor = element.parentNode;\r\n\r\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\r\n if (this.matches(ancestor, selector)) {\r\n parents.push(ancestor);\r\n }\r\n\r\n ancestor = ancestor.parentNode;\r\n }\r\n\r\n return parents;\r\n },\r\n\r\n prev(element, selector) {\r\n let previous = element.previousElementSibling;\r\n\r\n while (previous) {\r\n if (previous.matches(selector)) {\r\n return [previous];\r\n }\r\n\r\n previous = previous.previousElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n\r\n next(element, selector) {\r\n let next = element.nextElementSibling;\r\n\r\n while (next) {\r\n if (this.matches(next, selector)) {\r\n return [next];\r\n }\r\n\r\n next = next.nextElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n};\r\n\r\nexport default SelectorEngine;\r\n","import { element } from '../mdb/util/index';\r\nimport Data from '../mdb/dom/data';\r\nimport EventHandler from '../bootstrap/src/dom/event-handler';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport SelectorEngine from '../mdb/dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'input';\r\nconst DATA_KEY = 'mdb.input';\r\nconst CLASSNAME_WRAPPER = 'form-outline';\r\nconst OUTLINE_INPUT = `.${CLASSNAME_WRAPPER} input`;\r\nconst OUTLINE_TEXTAREA = `.${CLASSNAME_WRAPPER} textarea`;\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Input {\r\n constructor(element) {\r\n this._element = element;\r\n this._label = null;\r\n this._labelWidth = 0;\r\n this._labelMarginLeft = 0;\r\n this._notchLeading = null;\r\n this._notchMiddle = null;\r\n this._notchTrailing = null;\r\n\r\n if (this._element) {\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n }\r\n\r\n // Getters\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n init() {\r\n this._getLabelData();\r\n this._applyDivs();\r\n this._applyNotch();\r\n this._applyActiveClass();\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n this._element = null;\r\n }\r\n\r\n // Private\r\n _getLabelData() {\r\n this._label = SelectorEngine.findOne('label', this._element);\r\n if (this._label === null) return;\r\n this._getLabelWidth();\r\n\r\n if (!this._element.classList.contains('input-group')) return;\r\n this._getLabelPositionInInputGroup();\r\n }\r\n\r\n _getLabelWidth() {\r\n this._labelWidth = this._label.clientWidth * 0.8 + 8;\r\n }\r\n\r\n _getLabelPositionInInputGroup() {\r\n const input =\r\n SelectorEngine.findOne('input', this._element) ||\r\n SelectorEngine.findOne('textarea', this._element);\r\n const prefix = SelectorEngine.prev(input, '.input-group-text')[0];\r\n if (prefix === undefined) return;\r\n this._labelMarginLeft = prefix.offsetWidth - 1;\r\n }\r\n\r\n _applyDivs() {\r\n const notchWrapper = element('div');\r\n Manipulator.addClass(notchWrapper, 'form-notch');\r\n this._notchLeading = element('div');\r\n Manipulator.addClass(this._notchLeading, 'form-notch-leading');\r\n this._notchMiddle = element('div');\r\n Manipulator.addClass(this._notchMiddle, 'form-notch-middle');\r\n this._notchTrailing = element('div');\r\n Manipulator.addClass(this._notchTrailing, 'form-notch-trailing');\r\n\r\n notchWrapper.append(this._notchLeading);\r\n notchWrapper.append(this._notchMiddle);\r\n notchWrapper.append(this._notchTrailing);\r\n this._element.append(notchWrapper);\r\n }\r\n\r\n _applyNotch() {\r\n this._notchMiddle.style.width = `${this._labelWidth}px`;\r\n this._notchLeading.style.width = `${this._labelMarginLeft + 9}px`;\r\n\r\n if (this._label === null) return;\r\n this._label.style.marginLeft = `${this._labelMarginLeft}px`;\r\n }\r\n\r\n _applyActiveClass(event) {\r\n const input = event\r\n ? event.target\r\n : SelectorEngine.findOne('input', this._element) ||\r\n SelectorEngine.findOne('textarea', this._element);\r\n if (input.value !== '') {\r\n Manipulator.addClass(input, 'active');\r\n }\r\n }\r\n\r\n _removeActiveClass(event) {\r\n const input = event\r\n ? event.target\r\n : SelectorEngine.findOne('input', this._element) ||\r\n SelectorEngine.findOne('textarea', this._element);\r\n if (input.value === '') {\r\n input.classList.remove('active');\r\n }\r\n }\r\n\r\n static applyActiveClass(instance) {\r\n return function (event) {\r\n instance._applyActiveClass(event);\r\n };\r\n }\r\n\r\n static removeActiveClass(instance) {\r\n return function (event) {\r\n instance._removeActiveClass(event);\r\n };\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\nEventHandler.on(document, 'focus', OUTLINE_INPUT, Input.applyActiveClass(new Input()));\r\nEventHandler.on(document, 'input', OUTLINE_INPUT, Input.applyActiveClass(new Input()));\r\nEventHandler.on(document, 'blur', OUTLINE_INPUT, Input.removeActiveClass(new Input()));\r\n\r\nEventHandler.on(document, 'focus', OUTLINE_TEXTAREA, Input.applyActiveClass(new Input()));\r\nEventHandler.on(document, 'input', OUTLINE_TEXTAREA, Input.applyActiveClass(new Input()));\r\nEventHandler.on(document, 'blur', OUTLINE_TEXTAREA, Input.removeActiveClass(new Input()));\r\n\r\n// auto-init\r\nSelectorEngine.find(`.${CLASSNAME_WRAPPER}`).forEach((element) => {\r\n new Input(element).init();\r\n});\r\n\r\nexport default Input;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-alpha1): dom/event-handler.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { defaultPreventedPreservedOnDispatch } from './polyfill';\r\nimport { getjQuery } from '../util/index';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst $ = getjQuery();\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\r\nconst stripNameRegex = /\\..*/;\r\nconst stripUidRegex = /::\\d+$/;\r\nconst eventRegistry = {}; // Events storage\r\nlet uidEvent = 1;\r\nconst customEvents = {\r\n mouseenter: 'mouseover',\r\n mouseleave: 'mouseout',\r\n};\r\nconst nativeEvents = [\r\n 'click',\r\n 'dblclick',\r\n 'mouseup',\r\n 'mousedown',\r\n 'contextmenu',\r\n 'mousewheel',\r\n 'DOMMouseScroll',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'selectstart',\r\n 'selectend',\r\n 'keydown',\r\n 'keypress',\r\n 'keyup',\r\n 'orientationchange',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchend',\r\n 'touchcancel',\r\n 'pointerdown',\r\n 'pointermove',\r\n 'pointerup',\r\n 'pointerleave',\r\n 'pointercancel',\r\n 'gesturestart',\r\n 'gesturechange',\r\n 'gestureend',\r\n 'focus',\r\n 'blur',\r\n 'change',\r\n 'reset',\r\n 'select',\r\n 'submit',\r\n 'focusin',\r\n 'focusout',\r\n 'load',\r\n 'unload',\r\n 'beforeunload',\r\n 'resize',\r\n 'move',\r\n 'DOMContentLoaded',\r\n 'readystatechange',\r\n 'error',\r\n 'abort',\r\n 'scroll',\r\n];\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Private methods\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nfunction getUidEvent(element, uid) {\r\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++;\r\n}\r\n\r\nfunction getEvent(element) {\r\n const uid = getUidEvent(element);\r\n\r\n element.uidEvent = uid;\r\n eventRegistry[uid] = eventRegistry[uid] || {};\r\n\r\n return eventRegistry[uid];\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n return function handler(event) {\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(element, [event]);\r\n };\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n return function handler(event) {\r\n const domElements = element.querySelectorAll(selector);\r\n\r\n for (let { target } = event; target && target !== this; target = target.parentNode) {\r\n for (let i = domElements.length; i--; '') {\r\n if (domElements[i] === target) {\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(target, [event]);\r\n }\r\n }\r\n }\r\n\r\n // To please ESLint\r\n return null;\r\n };\r\n}\r\n\r\nfunction findHandler(events, handler, delegationSelector = null) {\r\n const uidEventList = Object.keys(events);\r\n\r\n for (let i = 0, len = uidEventList.length; i < len; i++) {\r\n const event = events[uidEventList[i]];\r\n\r\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\r\n return event;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\r\n const delegation = typeof handler === 'string';\r\n const originalHandler = delegation ? delegationFn : handler;\r\n\r\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '');\r\n const custom = customEvents[typeEvent];\r\n\r\n if (custom) {\r\n typeEvent = custom;\r\n }\r\n\r\n const isNative = nativeEvents.indexOf(typeEvent) > -1;\r\n\r\n if (!isNative) {\r\n typeEvent = originalTypeEvent;\r\n }\r\n\r\n return [delegation, originalHandler, typeEvent];\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n if (!handler) {\r\n handler = delegationFn;\r\n delegationFn = null;\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const events = getEvent(element);\r\n const handlers = events[typeEvent] || (events[typeEvent] = {});\r\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\r\n\r\n if (previousFn) {\r\n previousFn.oneOff = previousFn.oneOff && oneOff;\r\n\r\n return;\r\n }\r\n\r\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\r\n const fn = delegation\r\n ? bootstrapDelegationHandler(element, handler, delegationFn)\r\n : bootstrapHandler(element, handler);\r\n\r\n fn.delegationSelector = delegation ? handler : null;\r\n fn.originalHandler = originalHandler;\r\n fn.oneOff = oneOff;\r\n fn.uidEvent = uid;\r\n handlers[uid] = fn;\r\n\r\n element.addEventListener(typeEvent, fn, delegation);\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\r\n\r\n if (!fn) {\r\n return;\r\n }\r\n\r\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\r\n delete events[typeEvent][fn.uidEvent];\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n const storeElementEvent = events[typeEvent] || {};\r\n\r\n Object.keys(storeElementEvent).forEach((handlerKey) => {\r\n if (handlerKey.indexOf(namespace) > -1) {\r\n const event = storeElementEvent[handlerKey];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n}\r\n\r\nconst EventHandler = {\r\n on(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, false);\r\n },\r\n\r\n one(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, true);\r\n },\r\n\r\n off(element, originalTypeEvent, handler, delegationFn) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const inNamespace = typeEvent !== originalTypeEvent;\r\n const events = getEvent(element);\r\n const isNamespace = originalTypeEvent.charAt(0) === '.';\r\n\r\n if (typeof originalHandler !== 'undefined') {\r\n // Simplest case: handler is passed, remove that listener ONLY.\r\n if (!events || !events[typeEvent]) {\r\n return;\r\n }\r\n\r\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\r\n return;\r\n }\r\n\r\n if (isNamespace) {\r\n Object.keys(events).forEach((elementEvent) => {\r\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\r\n });\r\n }\r\n\r\n const storeElementEvent = events[typeEvent] || {};\r\n Object.keys(storeElementEvent).forEach((keyHandlers) => {\r\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\r\n\r\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\r\n const event = storeElementEvent[keyHandlers];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n },\r\n\r\n trigger(element, event, args) {\r\n if (typeof event !== 'string' || !element) {\r\n return null;\r\n }\r\n\r\n const typeEvent = event.replace(stripNameRegex, '');\r\n const inNamespace = event !== typeEvent;\r\n const isNative = nativeEvents.indexOf(typeEvent) > -1;\r\n\r\n let jQueryEvent;\r\n let bubbles = true;\r\n let nativeDispatch = true;\r\n let defaultPrevented = false;\r\n let evt = null;\r\n\r\n if (inNamespace && $) {\r\n jQueryEvent = $.Event(event, args);\r\n\r\n $(element).trigger(jQueryEvent);\r\n bubbles = !jQueryEvent.isPropagationStopped();\r\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\r\n defaultPrevented = jQueryEvent.isDefaultPrevented();\r\n }\r\n\r\n if (isNative) {\r\n evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(typeEvent, bubbles, true);\r\n } else {\r\n evt = new CustomEvent(event, {\r\n bubbles,\r\n cancelable: true,\r\n });\r\n }\r\n\r\n // merge custom informations in our event\r\n if (typeof args !== 'undefined') {\r\n Object.keys(args).forEach((key) => {\r\n Object.defineProperty(evt, key, {\r\n get() {\r\n return args[key];\r\n },\r\n });\r\n });\r\n }\r\n\r\n if (defaultPrevented) {\r\n evt.preventDefault();\r\n\r\n if (!defaultPreventedPreservedOnDispatch) {\r\n Object.defineProperty(evt, 'defaultPrevented', {\r\n get: () => true,\r\n });\r\n }\r\n }\r\n\r\n if (nativeDispatch) {\r\n element.dispatchEvent(evt);\r\n }\r\n\r\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\r\n jQueryEvent.preventDefault();\r\n }\r\n\r\n return evt;\r\n },\r\n};\r\n\r\nexport default EventHandler;\r\n","import { getjQuery, typeCheckConfig } from '../mdb/util/index';\r\nimport Data from '../mdb/dom/data';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport SelectorEngine from '../mdb/dom/selector-engine';\r\nimport EventHandler from '../mdb/dom/event-handler';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'animate';\r\nconst DATA_KEY = 'mdb.animate';\r\nconst SELECTOR_EXPAND = '[data-toggle=\"animation\"]';\r\n\r\nconst DefaultType = {\r\n animation: 'string',\r\n start: 'string',\r\n showOnLoad: 'boolean',\r\n onStart: '(null|function)',\r\n onEnd: '(null|function)',\r\n onHide: '(null|function)',\r\n onShow: '(null|function)',\r\n animateOnScroll: '(string)',\r\n windowHeight: 'number',\r\n offset: '(number|string)',\r\n delay: '(number|string)',\r\n duration: '(number|string)',\r\n reverse: 'boolean',\r\n interval: '(number|string)',\r\n repeat: '(number|boolean)',\r\n reset: 'boolean',\r\n};\r\n\r\nconst Default = {\r\n animation: 'fade',\r\n start: 'onClick',\r\n showOnLoad: true,\r\n onStart: null,\r\n onEnd: null,\r\n onHide: null,\r\n onShow: null,\r\n animateOnScroll: 'once',\r\n windowHeight: 0,\r\n offset: 0,\r\n delay: 0,\r\n duration: 500,\r\n reverse: false,\r\n interval: 0,\r\n repeat: false,\r\n reset: false,\r\n};\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Animate {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._animateElement = this._getAnimateElement();\r\n this._isFirstScroll = true;\r\n this._repeatAnimateOnScroll = true;\r\n this._options = this._getConfig(options);\r\n\r\n if (this._element) {\r\n Data.setData(element, DATA_KEY, this);\r\n }\r\n }\r\n\r\n // Getters\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n init() {\r\n this._init();\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n this._element = null;\r\n }\r\n\r\n // Private\r\n _init() {\r\n switch (this._options.start) {\r\n case 'onHover':\r\n this._bindHoverEvents();\r\n break;\r\n case 'onLoad':\r\n this._startAnimation();\r\n break;\r\n case 'onScroll':\r\n this._bindScrollEvents();\r\n break;\r\n default:\r\n this._bindClickEvents();\r\n break;\r\n }\r\n this._bindTriggerOnEndCallback();\r\n if (this._options.reset) {\r\n this._bindResetAnimationAfterFinish();\r\n }\r\n }\r\n\r\n _getAnimateElement() {\r\n const targetId = Manipulator.getDataAttribute(this._element, 'target');\r\n return targetId ? SelectorEngine.find(targetId)[0] : this._element;\r\n }\r\n\r\n _getConfig(config) {\r\n const dataAttributes = Manipulator.getDataAttributes(this._animateElement);\r\n\r\n config = {\r\n ...Default,\r\n ...dataAttributes,\r\n ...config,\r\n };\r\n\r\n typeCheckConfig(NAME, config, DefaultType);\r\n\r\n return config;\r\n }\r\n\r\n _animateOnScroll() {\r\n const elementOffsetTop = Manipulator.offset(this._animateElement).top;\r\n const elementHeight = this._animateElement.offsetHeight;\r\n const windowHeight = window.innerHeight;\r\n const shouldBeVisible =\r\n elementOffsetTop + this._options.offset <= windowHeight &&\r\n elementOffsetTop + this._options.offset + elementHeight >= 0;\r\n const isElementVisible = this._animateElement.style.visibility === 'visible';\r\n\r\n switch (true) {\r\n case shouldBeVisible && this._isFirstScroll:\r\n this._isFirstScroll = false;\r\n this._startAnimation();\r\n break;\r\n case !shouldBeVisible && this._isFirstScroll:\r\n this._isFirstScroll = false;\r\n this._hideAnimateElement();\r\n break;\r\n case shouldBeVisible && !isElementVisible && this._repeatAnimateOnScroll:\r\n if (this._options.animateOnScroll !== 'repeat') {\r\n this._repeatAnimateOnScroll = false;\r\n }\r\n this._callback(this._options.onShow);\r\n this._showAnimateElement();\r\n this._startAnimation();\r\n break;\r\n case !shouldBeVisible && isElementVisible && this._repeatAnimateOnScroll:\r\n this._hideAnimateElement();\r\n this._clearAnimationClass();\r\n this._callback(this._options.onHide);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n _addAnimatedClass() {\r\n Manipulator.addClass(this._animateElement, 'animation');\r\n Manipulator.addClass(this._animateElement, this._options.animation);\r\n }\r\n\r\n _clearAnimationClass() {\r\n this._animateElement.classList.remove(this._options.animation, 'animation');\r\n }\r\n\r\n _startAnimation() {\r\n this._callback(this._options.onStart);\r\n\r\n this._addAnimatedClass();\r\n\r\n if (this._options.repeat && !this._options.interval) {\r\n this._setAnimationRepeat();\r\n }\r\n\r\n if (this._options.reverse) {\r\n this._setAnimationReverse();\r\n }\r\n\r\n if (this._options.delay) {\r\n this._setAnimationDelay();\r\n }\r\n\r\n if (this._options.duration) {\r\n this._setAnimationDuration();\r\n }\r\n\r\n if (this._options.interval) {\r\n this._setAnimationInterval();\r\n }\r\n }\r\n\r\n _setAnimationReverse() {\r\n Manipulator.style(this._animateElement, {\r\n animationIterationCount: this._options.repeat === true ? 'infinite' : '2',\r\n animationDirection: 'alternate',\r\n });\r\n }\r\n\r\n _setAnimationDuration() {\r\n Manipulator.style(this._animateElement, {\r\n animationDuration: `${this._options.duration}ms`,\r\n });\r\n }\r\n\r\n _setAnimationDelay() {\r\n Manipulator.style(this._animateElement, {\r\n animationDelay: `${this._options.delay}ms`,\r\n });\r\n }\r\n\r\n _setAnimationRepeat() {\r\n Manipulator.style(this._animateElement, {\r\n animationIterationCount: this._options.repeat === true ? 'infinite' : this._options.repeat,\r\n });\r\n }\r\n\r\n _setAnimationInterval() {\r\n EventHandler.on(this._animateElement, 'animationend', () => {\r\n this._clearAnimationClass();\r\n setTimeout(() => {\r\n this._addAnimatedClass();\r\n }, this._options.interval);\r\n });\r\n }\r\n\r\n _hideAnimateElement() {\r\n Manipulator.style(this._animateElement, { visibility: 'hidden' });\r\n }\r\n\r\n _showAnimateElement() {\r\n Manipulator.style(this._animateElement, { visibility: 'visible' });\r\n }\r\n\r\n _bindResetAnimationAfterFinish() {\r\n EventHandler.on(this._animateElement, 'animationend', () => {\r\n this._clearAnimationClass();\r\n });\r\n }\r\n\r\n _bindTriggerOnEndCallback() {\r\n EventHandler.on(this._animateElement, 'animationend', () => {\r\n this._callback(this._options.onEnd);\r\n });\r\n }\r\n\r\n _bindScrollEvents() {\r\n if (!this._options.showOnLoad) {\r\n this._animateOnScroll();\r\n }\r\n\r\n EventHandler.on(window, 'scroll', () => {\r\n this._animateOnScroll();\r\n });\r\n }\r\n\r\n _bindClickEvents() {\r\n EventHandler.on(this._element, 'mousedown', () => {\r\n this._startAnimation();\r\n });\r\n }\r\n\r\n _bindHoverEvents() {\r\n EventHandler.one(this._element, 'mouseenter', () => {\r\n this._startAnimation();\r\n });\r\n EventHandler.one(this._animateElement, 'animationend', () => {\r\n // wait after bind hoverEvents to prevent animation looping\r\n setTimeout(() => {\r\n this._bindHoverEvents();\r\n }, 100);\r\n });\r\n }\r\n\r\n _callback(fn) {\r\n if (fn instanceof Function) {\r\n fn();\r\n }\r\n }\r\n\r\n // Static\r\n static autoInit(instance) {\r\n instance._init();\r\n }\r\n\r\n static jQueryInterface(options) {\r\n const animate = new Animate(this[0], options);\r\n animate.init();\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation - auto initialization\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nSelectorEngine.find(SELECTOR_EXPAND).forEach((el) => {\r\n Animate.autoInit(new Animate(el));\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .animate to jQuery only if jQuery is present\r\n */\r\n\r\nconst $ = getjQuery();\r\n\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Animate.jQueryInterface;\r\n $.fn[NAME].Constructor = Animate;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Animate.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Animate;\r\n","import { element, getjQuery } from '../mdb/util/index';\r\nimport Data from '../mdb/dom/data';\r\nimport EventHandler from '../bootstrap/src/dom/event-handler';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport SelectorEngine from '../mdb/dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'treeview';\r\nconst DATA_KEY = 'mdb.treeview';\r\nconst CLASSNAME_TREEVIEW = 'treeview';\r\nconst SELECTOR_EXPAND = '[data-toggle=\"treeview\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Treeview {\r\n constructor(element, data) {\r\n this._element = element;\r\n\r\n if (this._element) {\r\n this._data = data ? this._createHTMLNodes(data, element) : this._setData(element);\r\n Data.setData(element, DATA_KEY, this);\r\n Manipulator.addClass(this._element, CLASSNAME_TREEVIEW);\r\n\r\n this._constructTreeview(this._data);\r\n }\r\n }\r\n\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n collapse() {\r\n const [, ...innerLists] = SelectorEngine.find('ul', this._element);\r\n innerLists.forEach((node) => (node.style.display = 'none'));\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n this._element = null;\r\n }\r\n\r\n // Private\r\n\r\n _toggleSubmenu(e) {\r\n e.stopPropagation();\r\n\r\n const li = e.target.nodeName === 'I' ? e.target.parentNode : e.target;\r\n\r\n const [ul] =\r\n li.nodeName === 'I'\r\n ? SelectorEngine.children(li.parentNode, 'ul')\r\n : SelectorEngine.children(li, 'ul');\r\n\r\n if (ul) {\r\n ul.style.display = window.getComputedStyle(ul).display === 'none' ? 'block' : 'none';\r\n this._toggleIcon(li);\r\n }\r\n }\r\n\r\n _toggleIcon(el, icon1 = 'fa-caret-down', icon2 = 'fa-caret-up') {\r\n const [i] = SelectorEngine.children(el, 'i');\r\n\r\n if (!i) return;\r\n\r\n const faClasses = [icon1, icon2];\r\n\r\n const [current, next] = i.classList.contains(icon1) ? faClasses : faClasses.reverse();\r\n\r\n i.classList.remove(current);\r\n i.classList.add(next);\r\n }\r\n\r\n _constructTreeview(data) {\r\n data.forEach((el) => {\r\n el.node.addEventListener('click', this._toggleSubmenu.bind(this));\r\n\r\n if (el.children && el.children.length > 0) {\r\n const arrow = element('i');\r\n arrow.classList = ['fas fa-caret-down'];\r\n el.node.appendChild(arrow);\r\n\r\n this._constructTreeview(el.children);\r\n }\r\n });\r\n }\r\n\r\n _setData(el) {\r\n const [list] = SelectorEngine.children(el, 'ul');\r\n\r\n if (!list) return [];\r\n\r\n return SelectorEngine.children(list, 'li').map((node) => {\r\n const children = this._setData(node);\r\n return {\r\n name: node.innerText ? node.innerText.split('\\n')[0] : '',\r\n node,\r\n children,\r\n };\r\n });\r\n }\r\n\r\n _createHTMLNodes(data, parent) {\r\n const ul = element('ul');\r\n\r\n return data.map((item) => {\r\n const li = element('li');\r\n li.innerText = item.name;\r\n let children = item.children;\r\n\r\n if (children && children.length > 0) {\r\n children = this._createHTMLNodes(item.children, li);\r\n }\r\n\r\n ul.appendChild(li);\r\n parent.appendChild(ul);\r\n\r\n return {\r\n ...item,\r\n children,\r\n node: li,\r\n };\r\n });\r\n }\r\n\r\n static toggleSubmenu(instance) {\r\n return function (event) {\r\n instance._toggleSubmenu(event);\r\n };\r\n }\r\n\r\n static jQueryInterface(options) {\r\n return this.each(function () {\r\n const data = Data.getData(this, DATA_KEY);\r\n if (!data) {\r\n return new Treeview(this, options);\r\n }\r\n\r\n return null;\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation - auto initialization\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, 'click', SELECTOR_EXPAND, Treeview.toggleSubmenu(new Treeview()));\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .treeview to jQuery only if jQuery is present\r\n */\r\n\r\nconst $ = getjQuery();\r\n\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Treeview.jQueryInterface;\r\n $.fn[NAME].Constructor = Treeview;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Treeview.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Treeview;\r\n","import { element, getjQuery, typeCheckConfig } from '../mdb/util/index';\r\nimport Data from '../mdb/dom/data';\r\nimport EventHandler from '../bootstrap/src/dom/event-handler';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport SelectorEngine from '../mdb/dom/selector-engine';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'ripple';\r\nconst DATA_KEY = 'mdb.ripple';\r\nconst CLASSNAME_RIPPLE = 'ripple-surface';\r\nconst CLASSNAME_RIPPLE_WAVE = 'ripple-wave';\r\nconst SELECTOR_COMPONENT = ['.btn', '.ripple'];\r\n\r\nconst CLASSNAME_UNBOUND = 'ripple-surface-unbound';\r\nconst GRADIENT =\r\n 'rgba({{color}}, 0.2) 0, rgba({{color}}, 0.3) 40%, rgba({{color}}, 0.4) 50%, rgba({{color}}, 0.5) 60%, rgba({{color}}, 0) 70%';\r\nconst DEFAULT_RIPPLE_COLOR = [0, 0, 0];\r\nconst BOOTSTRAP_COLORS = [\r\n 'primary',\r\n 'secondary',\r\n 'success',\r\n 'danger',\r\n 'warning',\r\n 'info',\r\n 'light',\r\n 'dark',\r\n];\r\n\r\n// Sets walue when run opacity transition\r\n// Hide element after 50% (0.5) time of animation and finish on 100%\r\nconst TRANSITION_BREAK_OPACITY = 0.5;\r\n\r\nconst Default = {\r\n rippleCentered: false,\r\n rippleColor: '',\r\n rippleDuration: '500ms',\r\n rippleRadius: 0,\r\n rippleUnbound: false,\r\n};\r\n\r\nconst DefaultType = {\r\n rippleCentered: 'boolean',\r\n rippleColor: 'string',\r\n rippleDuration: 'string',\r\n rippleRadius: 'number',\r\n rippleUnbound: 'boolean',\r\n};\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Ripple {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = this._getConfig(options);\r\n if (this._element) {\r\n Data.setData(element, DATA_KEY, this);\r\n Manipulator.addClass(this._element, CLASSNAME_RIPPLE);\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n init() {\r\n this._addClickEvent(this._element);\r\n }\r\n\r\n dispose() {\r\n Data.removeData(this._element, DATA_KEY);\r\n EventHandler.off(this._element, 'click', '');\r\n this._element = null;\r\n this._options = null;\r\n }\r\n\r\n // Private\r\n\r\n _autoInit(event) {\r\n SELECTOR_COMPONENT.forEach((selector) => {\r\n const target = SelectorEngine.closest(event.target, selector);\r\n if (target) {\r\n this._element = SelectorEngine.closest(event.target, selector);\r\n }\r\n });\r\n Manipulator.addClass(this._element, CLASSNAME_RIPPLE);\r\n this._options = this._getConfig();\r\n this._createRipple(event);\r\n }\r\n\r\n _addClickEvent(target) {\r\n EventHandler.on(target, 'click', '', (event) => {\r\n this._createRipple(event);\r\n });\r\n }\r\n\r\n _createRipple(event) {\r\n const { layerX, layerY } = event;\r\n const offsetX = layerX;\r\n const offsetY = layerY;\r\n const height = this._element.offsetHeight;\r\n const width = this._element.offsetWidth;\r\n const duration = this._durationToMsNumber(this._options.rippleDuration);\r\n const diameterOptions = {\r\n offsetX: this._options.rippleCentered ? height / 2 : offsetX,\r\n offsetY: this._options.rippleCentered ? width / 2 : offsetY,\r\n height,\r\n width,\r\n };\r\n const diameter = this._getDiameter(diameterOptions);\r\n const radiusValue = this._options.rippleRadius || diameter / 2;\r\n\r\n const opacity = {\r\n delay: duration * TRANSITION_BREAK_OPACITY,\r\n duration: duration - duration * TRANSITION_BREAK_OPACITY,\r\n };\r\n\r\n const styles = {\r\n left: this._options.rippleCentered\r\n ? `${width / 2 - radiusValue}px`\r\n : `${offsetX - radiusValue}px`,\r\n top: this._options.rippleCentered\r\n ? `${height / 2 - radiusValue}px`\r\n : `${offsetY - radiusValue}px`,\r\n height: `${this._options.rippleRadius * 2 || diameter}px`,\r\n width: `${this._options.rippleRadius * 2 || diameter}px`,\r\n transitionDelay: `0s, ${opacity.delay}ms`,\r\n transitionDuration: `${duration}ms, ${opacity.duration}ms`,\r\n };\r\n\r\n const rippleHTML = element('div');\r\n\r\n this._createHTMLRipple({ wrapper: this._element, ripple: rippleHTML, styles });\r\n this._removeHTMLRipple({ ripple: rippleHTML, duration });\r\n }\r\n\r\n _createHTMLRipple({ wrapper, ripple, styles }) {\r\n Object.keys(styles).forEach((property) => (ripple.style[property] = styles[property]));\r\n ripple.classList.add(CLASSNAME_RIPPLE_WAVE);\r\n if (this._options.rippleColor !== '') {\r\n this._removeOldColorClasses(wrapper);\r\n this._addColor(ripple, wrapper);\r\n }\r\n\r\n this._toggleUnbound(wrapper);\r\n this._appendRipple(ripple, wrapper);\r\n }\r\n\r\n _removeHTMLRipple({ ripple, duration }) {\r\n setTimeout(() => {\r\n if (ripple) {\r\n ripple.remove();\r\n }\r\n }, duration);\r\n }\r\n\r\n _durationToMsNumber(time) {\r\n return Number(time.replace('ms', '').replace('s', '000'));\r\n }\r\n\r\n _getConfig(config = {}) {\r\n const dataAttributes = Manipulator.getDataAttributes(this._element);\r\n\r\n config = {\r\n ...Default,\r\n ...dataAttributes,\r\n ...config,\r\n };\r\n\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _getDiameter({ offsetX, offsetY, height, width }) {\r\n const top = offsetY <= height / 2;\r\n const left = offsetX <= width / 2;\r\n const pythagorean = (sideA, sideB) => Math.sqrt(sideA ** 2 + sideB ** 2);\r\n\r\n const positionCenter = offsetY === height / 2 && offsetX === width / 2;\r\n // mouse position on the quadrants of the coordinate system\r\n const quadrant = {\r\n first: top === true && left === false,\r\n second: top === true && left === true,\r\n third: top === false && left === true,\r\n fourth: top === false && left === false,\r\n };\r\n\r\n const getCorner = {\r\n topLeft: pythagorean(offsetX, offsetY),\r\n topRight: pythagorean(width - offsetX, offsetY),\r\n bottomLeft: pythagorean(offsetX, height - offsetY),\r\n bottomRight: pythagorean(width - offsetX, height - offsetY),\r\n };\r\n\r\n let diameter = 0;\r\n\r\n if (positionCenter || quadrant.fourth) {\r\n diameter = getCorner.topLeft;\r\n } else if (quadrant.third) {\r\n diameter = getCorner.topRight;\r\n } else if (quadrant.second) {\r\n diameter = getCorner.bottomRight;\r\n } else if (quadrant.first) {\r\n diameter = getCorner.bottomLeft;\r\n }\r\n return diameter * 2;\r\n }\r\n\r\n _appendRipple(target, parent) {\r\n const FIX_ADD_RIPPLE_EFFECT = 50; // delay for active animations\r\n parent.appendChild(target);\r\n setTimeout(() => {\r\n Manipulator.addClass(target, 'active');\r\n }, FIX_ADD_RIPPLE_EFFECT);\r\n }\r\n\r\n _toggleUnbound(target) {\r\n if (this._options.rippleUnbound === true) {\r\n Manipulator.addClass(target, CLASSNAME_UNBOUND);\r\n } else {\r\n target.classList.remove(CLASSNAME_UNBOUND);\r\n }\r\n }\r\n\r\n _addColor(target, parent) {\r\n const IS_BOOTSTRAP_COLOR = BOOTSTRAP_COLORS.find(\r\n (color) => color === this._options.rippleColor.toLowerCase()\r\n );\r\n\r\n if (IS_BOOTSTRAP_COLOR) {\r\n Manipulator.addClass(\r\n parent,\r\n `${CLASSNAME_RIPPLE}-${this._options.rippleColor.toLowerCase()}`\r\n );\r\n } else {\r\n const rgbValue = this._colorToRGB(this._options.rippleColor).join(',');\r\n const gradientImage = GRADIENT.split('{{color}}').join(`${rgbValue}`);\r\n target.style.backgroundImage = `radial-gradient(circle, ${gradientImage})`;\r\n }\r\n }\r\n\r\n _removeOldColorClasses(target) {\r\n const REGEXP_CLASS_COLOR = new RegExp(`${CLASSNAME_RIPPLE}-[a-z]+`, 'gi');\r\n const PARENT_CLASSS_COLOR = target.classList.value.match(REGEXP_CLASS_COLOR) || [];\r\n PARENT_CLASSS_COLOR.forEach((className) => {\r\n target.classList.remove(className);\r\n });\r\n }\r\n\r\n _colorToRGB(color) {\r\n function hexToRgb(color) {\r\n const HEX_COLOR_LENGTH = 7;\r\n const IS_SHORT_HEX = color.length < HEX_COLOR_LENGTH;\r\n if (IS_SHORT_HEX) {\r\n color = `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\r\n }\r\n return [\r\n parseInt(color.substr(1, 2), 16),\r\n parseInt(color.substr(3, 2), 16),\r\n parseInt(color.substr(5, 2), 16),\r\n ];\r\n }\r\n\r\n function namedColorsToRgba(color) {\r\n const tempElem = document.body.appendChild(document.createElement('fictum'));\r\n const flag = 'rgb(1, 2, 3)';\r\n tempElem.style.color = flag;\r\n if (tempElem.style.color !== flag) {\r\n return DEFAULT_RIPPLE_COLOR;\r\n }\r\n tempElem.style.color = color;\r\n if (tempElem.style.color === flag || tempElem.style.color === '') {\r\n return DEFAULT_RIPPLE_COLOR;\r\n } // color parse failed\r\n color = getComputedStyle(tempElem).color;\r\n document.body.removeChild(tempElem);\r\n return color;\r\n }\r\n\r\n function rgbaToRgb(color) {\r\n color = color.match(/[.\\d]+/g).map((a) => +Number(a));\r\n color.length = 3;\r\n return color;\r\n }\r\n\r\n if (color.toLowerCase() === 'transparent') {\r\n return DEFAULT_RIPPLE_COLOR;\r\n }\r\n if (color[0] === '#') {\r\n return hexToRgb(color);\r\n }\r\n if (color.indexOf('rgb') === -1) {\r\n color = namedColorsToRgba(color);\r\n }\r\n if (color.indexOf('rgb') === 0) {\r\n return rgbaToRgb(color);\r\n }\r\n\r\n return DEFAULT_RIPPLE_COLOR;\r\n }\r\n\r\n // Static\r\n\r\n static autoInitial(instance) {\r\n return function (event) {\r\n instance._autoInit(event);\r\n };\r\n }\r\n\r\n static staticMethod(instance) {\r\n return function (event) {\r\n instance._method(event);\r\n };\r\n }\r\n\r\n static jQueryInterface(options) {\r\n return this.each(function () {\r\n const data = Data.getData(this, DATA_KEY);\r\n if (!data) {\r\n return new Ripple(this, options);\r\n }\r\n\r\n return null;\r\n });\r\n }\r\n\r\n static getInstance(element) {\r\n return Data.getData(element, DATA_KEY);\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation - auto initialization\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nSELECTOR_COMPONENT.forEach((slector) => {\r\n EventHandler.one(document, 'click', slector, Ripple.autoInitial(new Ripple()));\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .ripple to jQuery only if jQuery is present\r\n */\r\n\r\nconst $ = getjQuery();\r\n\r\nif ($) {\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n $.fn[NAME] = Ripple.jQueryInterface;\r\n $.fn[NAME].Constructor = Ripple;\r\n $.fn[NAME].noConflict = () => {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Ripple.jQueryInterface;\r\n };\r\n}\r\n\r\nexport default Ripple;\r\n"],"sourceRoot":""}