{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/async-load.js","../../js/src/alert.js","../../js/src/dom/selector-engine.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/class-toggler.js","../../js/src/collapse.js","../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../node_modules/@popperjs/core/lib/enums.js","../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../node_modules/@popperjs/core/lib/index.js","../../node_modules/@popperjs/core/lib/utils/debounce.js","../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../node_modules/@popperjs/core/lib/dom-utils/getBorders.js","../../node_modules/@popperjs/core/lib/dom-utils/getDecorations.js","../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../node_modules/@popperjs/core/lib/utils/within.js","../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../node_modules/@popperjs/core/lib/popper.js","../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","../../js/src/sidebar.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/polyfills.js","../../js/index.umd.js"],"names":["storeData","id","e","element","getUID","prefix","Math","floor","random","document","getElementById","getSelector","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","set","key","data","get","keyProperties","delete","Data","instance","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","_","this","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","slice","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NAME","SELECTOR_NAV_LINK","Default","defaultPage","errorPage","subpagesDirectory","AsyncLoad","_config","_getConfig","_element","url","location","hash","_setUpUrl","_addEventListeners","_objectSpread2","_loadPage","_this","xhr","XMLHttpRequest","open","detail","status","onload","result","wrapper","innerHTML","response","scripts","Array","from","map","script","attributes","getNamedItem","nodeValue","remove","scrollTo","appendChild","oldScripts","oldScript","loadScripts","src","className","onreadystatechange","readyState","getElementsByTagName","href","send","classList","add","SELECTOR_NAV_ITEM","_loadBlank","_loadTop","_update","link","dataset","toggle","_this2","contains","closest","_asyncLoadInterface","TypeError","jQueryInterface","each","JQUERY_NO_CONFLICT","Constructor","noConflict","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","_destroyElement","removeChild","handleDismiss","alertInstance","getInstance","SelectorEngine","_ref","documentElement","concat","findFn","children","_ref2","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","DATA_KEY","Button","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","EVENT_KEY","interval","keyboard","slide","pause","wrap","touch","DefaultType","EVENT_SLID","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","carouselInterface","action","ride","dataApiClickHandler","slideIndex","carousels","ClassToggler","_getElementDataAttributes","dataAttributes","object","responsive","postfix","breakpoints","_arrayFromString","currentBreakpoint","breakpoint","includes","responsiveClassNames","splice","addResponsiveClasses","responsiveClassName","string","_isArray","array","JSON","parse","_unused","_convertToArray","_getDataAttributes","attribute","dataAttribute","_getToggleDetails","classNames","ToggleDetails","isArray","_ifArray","targets","class","TargetDetails","_classTogglerInterface","toggler","parent","Collapse","_isTransitioning","_triggerArray","SELECTOR_DATA_TOGGLE","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","width","height","right","bottom","x","y","getWindow","node","ownerDocument","defaultView","getWindowScroll","win","pageXOffset","pageYOffset","isHTMLElement","HTMLElement","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","scroll","offsets","getHTMLElementScroll","clientLeft","clientTop","getLayoutRect","offsetWidth","getParentNode","assignedSlot","host","listScrollParents","list","scrollParent","getScrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","basePlacements","variationPlacements","reduce","acc","placement","placements","modifierPhases","order","modifiers","Map","visited","Set","modifier","name","has","sort","requires","requiresIfExists","dep","depModifier","getBasePlacement","DEFAULT_OPTIONS","strategy","areValidElements","_len","arguments","_key","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","popper","options","pending","state","orderedModifiers","assign","modifiersData","elements","styles","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","scrollParents","contextElement","merged","phase","orderModifiers","current","existing","m","enabled","_ref3","_ref3$options","effect","cleanupFn","update","forceUpdate","_state$elements","rects","reset","_state$orderedModifie","_state$orderedModifie2","_options","Promise","resolve","then","undefined","destroy","onFirstUpdate","passive","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","ceil","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","_roundOffsets","dpr","devicePixelRatio","round","roundOffsets","hasX","hasOwnProperty","hasY","sideX","sideY","clientHeight","clientWidth","_Object$assign","commonStyles","transform","getOppositePlacement","matched","getOppositeVariationPlacement","toNumber","cssValue","getDecorations","borders","computedStyle","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","getBorders","isHTML","winScrollBarX","innerHeight","innerWidth","isShadow","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","platform","getViewportRect","winScroll","documentRect","max","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","decorations","min","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","referenceElement","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","overflows","a","b","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","_options$scroll","_options$resize","resize","_options$gpuAccelerat","_options$adaptive","arrow","data-popper-placement","initialStyles","margin","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_preventedOffset","_state$modifiersData$","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","data-popper-reference-hidden","data-popper-escaped","REGEXP_KEYDOWN","ARROW_UP_KEY","flip","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_inHeader","_detectHeader","disabled","isActive","clearMenus","getParentFromElement","_getPopperConfig","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","_enforceFocus","transitionComplete","_this5","_triggerBackdropTransition","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","_this9","modalTransitionDuration","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this10","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","scrollDiv","scrollbarWidth","_this11","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultWhitelist","*","area","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","el","elName","attributeList","whitelistedAttributes","attr","allowedAttributeList","attrName","regExp","attrRegex","allowedAttribute","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","findShadowRoot","attachShadow","root","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","originalPlacement","eventIn","eventOut","_fixTitle","titleType","dataAttr","console","log","tabClass","token","tClass","initConfigAnimation","Popover","_getContent","_addAttachmentClass","CLASS_PREFIX","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","_getOffsetHeight","maxScroll","_activate","_clear","queries","join","listGroup","SELECTOR_NAV_LINKS","navItem","spy","elMatches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","query","queryChildren","cls","thumb","rail","consuming","clicking","active","scrolling","scrollingClassTimeout","addScrollingClass","removeScrollingClass","isAlive","settings","scrollingThreshold","EventElement","prototypeAccessors","isEmpty","configurable","eventName","unbind","this$1","unbindAll","defineProperties","EventManager","eventElements","initCustomEvent","processScrollDiff","diff","useScrollingClass","forceFireReachEvent","fields","ref","contentHeight","containerHeight","up","down","reach","setScrollingClassInstantly","processScrollDiff$1","toInt","eventElement","ee","once","onceHandler","env","isWebKit","supportsTouch","DocumentTouch","supportsIePointer","msMaxTouchPoints","isChrome","userAgent","updateGeometry","roundedScrollTop","containerWidth","contentWidth","scrollWidth","scrollbarXRail","scrollbarYRail","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXWidth","railXMarginWidth","railXRatio","scrollbarXWidth","getThumbSize","scrollbarXLeft","negativeScrollAdjustment","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYHeight","railYMarginHeight","railYRatio","scrollbarYHeight","scrollbarYTop","xRailOffset","isRtl","isScrollbarXUsingBottom","scrollbarXBottom","scrollbarXTop","yRailOffset","isScrollbarYUsingRight","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarX","railBorderXWidth","scrollbarY","railBorderYWidth","updateCss","thumbSize","minScrollbarLength","maxScrollbarLength","bindMouseScrollHandler","pageY","startingScrollTop","startingMousePageY","scrollBy","mouseMoveHandler","mouseUpHandler","bindMoves","touchMode","click-rail","pageX","drag-thumb","contentDocument","deltaX","deltaY","which","metaKey","altKey","shiftKey","wheelPropagation","shouldPreventDefault","wheel","mousewheelHandler","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","getDeltaFromEvent","cursor","maxScrollTop","maxScrollLeft","shouldBeConsumedByChild","shouldPrevent","useBothWheelAxes","wheelSpeed","isTop","isBottom","isLeft","isRight","ctrlKey","onwheel","onmousewheel","startOffset","startTime","speed","easingLoop","touchStart","touchMove","touchEnd","applyTouchMove","differenceX","differenceY","getTouch","targetTouches","shouldHandle","buttons","MSPOINTER_TYPE_MOUSE","Date","getTime","currentOffset","currentTime","timeGap","magnitudeX","magnitudeY","scrollY","swipeEasing","isInitialized","PerfectScrollbar","userSettings","originalScrollLeft","blur","isNegativeScroll","railXStyle","isNaN","marginLeft","railYStyle","outerWidth","marginTop","marginBottom","handlerName","lastScrollTop","lastScrollLeft","onScroll","removePsClasses","xs","sm","md","lg","xl","dropdownAccordion","Sidebar","_open","_isVisible","_mobile","_isMobile","_overlaid","_isOverlaid","_minimize","_isMinimized","_unfoldable","_isUnfoldable","_setActiveLink","_ps","_psInit","_addClassName","_firstBreakpointClassName","_addClickOutListener","_getBreakpointClassName","_removeClickOutListener","minimize","_psDestroy","unfoldable","getPropertyValue","_isIOS","iOSDevices","pop","_clickOutListener","sidebar","_getAllSiblings","siblings","firstChild","nextSibling","_toggleDropdown","parentElement","_psUpdate","_getParents","currentUrl","String","_sidebarInterface","Tab","listElement","itemSelector","hideEvent","_transitionComplete","dropdownChild","dropdown","toStr","isCallable","maxSafeInteger","toLength","factory","autohide","Toast","pow","number","isFinite","toInteger","arrayLike","C","T","mapFn","kValue","A","k","params","matchesSelector","oMatchesSelector","predicate","o","thisArg","varArgs","nextSource","nextKey","finallyConstructor","reason","reject","setTimeoutFunc","_state","_handled","_value","_deferreds","doResolve","handle","self","deferred","_immediateFn","cb","onFulfilled","onRejected","ret","promise","newValue","finale","_unhandledRejectionFn","Handler","done","ex","prom","all","arr","remaining","res","race","setImmediate","err","warn","globalNS","global","exports","module","define","amd","Scrollspy"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n find,\n findOne,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.coreui.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): asyn-load.js\n * Licensed under MIT (https://coreui.io/license)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'asyncLoad'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.asyncLoad'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'c-active'\nconst CLASS_NAME_NAV_DROPDOWN_TOGGLE = 'c-sidebar-nav-dropdown-toggle'\nconst CLASS_NAME_NAV_LINK = 'c-sidebar-nav-link'\nconst CLASS_NAME_SHOW = 'c-show'\nconst CLASS_NAME_VIEW_SCRIPT = 'view-script'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_XHR_STATUS = 'xhr'\n\nconst SELECTOR_NAV_DROPDOWN = '.c-sidebar-nav-dropdown'\nconst SELECTOR_NAV_LINK = '.c-xhr-link, .c-sidebar-nav-link'\nconst SELECTOR_NAV_ITEM = '.c-sidebar-nav-item'\nconst SELECTOR_VIEW_SCRIPT = '.view-script'\n\nconst Default = {\n defaultPage: 'main.html',\n errorPage: '404.html',\n subpagesDirectory: 'views/'\n}\n\nclass AsyncLoad {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n // eslint-disable-next-line no-restricted-globals\n const url = location.hash.replace(/^#/, '')\n\n // eslint-disable-next-line no-negated-condition\n if (url !== '') {\n this._setUpUrl(url)\n } else {\n this._setUpUrl(this._config.defaultPage)\n }\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n return config\n }\n\n _loadPage(url) {\n const element = this._element\n const config = this._config\n\n const loadScripts = (src, element = 0) => {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = src[element]\n script.className = CLASS_NAME_VIEW_SCRIPT\n // eslint-disable-next-line no-multi-assign, unicorn/prefer-add-event-listener\n script.onload = script.onreadystatechange = () => {\n if (!this.readyState || this.readyState === 'complete') {\n if (src.length > element + 1) {\n loadScripts(src, element + 1)\n }\n }\n }\n\n const body = document.getElementsByTagName('body')[0]\n body.appendChild(script)\n }\n\n const removeScripts = () => {\n const oldScripts = document.querySelectorAll(SELECTOR_VIEW_SCRIPT)\n if (oldScripts.length) {\n oldScripts.forEach(oldScript => {\n oldScript.remove()\n })\n }\n }\n\n const xhr = new XMLHttpRequest()\n xhr.open('GET', config.subpagesDirectory + url)\n let event = new CustomEvent(EVENT_XHR_STATUS, {\n detail: {\n url,\n status: xhr.status\n }\n })\n element.dispatchEvent(event)\n // eslint-disable-next-line unicorn/prefer-add-event-listener\n xhr.onload = result => {\n if (xhr.status === 200) {\n event = new CustomEvent(EVENT_XHR_STATUS, {\n detail: {\n url,\n status: xhr.status\n }\n })\n element.dispatchEvent(event)\n const wrapper = document.createElement('div')\n wrapper.innerHTML = result.target.response\n\n // eslint-disable-next-line unicorn/prefer-spread\n const scripts = Array.from(wrapper.querySelectorAll('script')).map(script => script.attributes.getNamedItem('src').nodeValue)\n\n wrapper.querySelectorAll('script').forEach(script => script.remove(script))\n\n window.scrollTo(0, 0)\n element.innerHTML = ''\n element.appendChild(wrapper)\n removeScripts()\n if (scripts.length) {\n loadScripts(scripts)\n }\n\n window.location.hash = url\n } else {\n window.location.href = config.errorPage\n }\n }\n\n xhr.send()\n }\n\n _setUpUrl(url) {\n url = url.replace(/^\\//, '').split('?')[0]\n\n // eslint-disable-next-line unicorn/prefer-spread\n Array.from(document.querySelectorAll(SELECTOR_NAV_LINK)).forEach(element => {\n element.classList.remove(CLASS_NAME_ACTIVE)\n })\n\n // eslint-disable-next-line unicorn/prefer-spread\n Array.from(document.querySelectorAll(SELECTOR_NAV_LINK)).forEach(element => {\n element.classList.remove(CLASS_NAME_ACTIVE)\n })\n\n // eslint-disable-next-line unicorn/prefer-spread\n Array.from(document.querySelectorAll(SELECTOR_NAV_DROPDOWN)).forEach(element => {\n element.classList.remove(CLASS_NAME_SHOW)\n })\n\n // eslint-disable-next-line unicorn/prefer-spread\n Array.from(document.querySelectorAll(SELECTOR_NAV_DROPDOWN)).forEach(element => {\n // eslint-disable-next-line unicorn/prefer-spread\n if (Array.from(element.querySelectorAll(`a[href*=\"${url}\"]`)).length > 0) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n })\n\n // eslint-disable-next-line unicorn/prefer-spread\n Array.from(document.querySelectorAll(`${SELECTOR_NAV_ITEM} a[href*=\"${url}\"]`)).forEach(element => {\n element.classList.add(CLASS_NAME_ACTIVE)\n })\n\n this._loadPage(url)\n }\n\n _loadBlank(url) {\n window.open(url)\n }\n\n _loadTop(url) {\n window.location = url\n }\n\n _update(link) {\n if (link.href !== '#') {\n if (typeof link.dataset.toggle === 'undefined' || link.dataset.toggle === 'null') {\n if (link.target === '_top') {\n this._loadTop(link.href)\n } else if (link.target === '_blank') {\n this._loadBlank(link.href)\n } else {\n this._setUpUrl(link.getAttribute('href'))\n }\n }\n }\n }\n\n _addEventListeners() {\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_NAV_LINK, event => {\n event.preventDefault()\n let link = event.target\n if (!link.classList.contains(CLASS_NAME_NAV_LINK)) {\n link = link.closest(SELECTOR_NAV_LINK)\n }\n\n if (!link.classList.contains(CLASS_NAME_NAV_DROPDOWN_TOGGLE) && link.getAttribute('href') !== '#') {\n this._update(link)\n }\n })\n }\n\n // Static\n\n static _asyncLoadInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new AsyncLoad(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n AsyncLoad._asyncLoadInterface(this, config)\n })\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .asyncLoad to jQuery only if jQuery is present\n */\n\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = AsyncLoad.jQueryInterface\n $.fn[NAME].Constructor = AsyncLoad\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return AsyncLoad.jQueryInterface\n }\n}\n\nexport default AsyncLoad\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): alert.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's alert.js\n * Bootstrap (v5.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...findFn.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): button.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's buttons.js\n * Bootstrap (v5.0.0): buttons.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = this._element.closest(SELECTOR_DATA_TOGGLE)\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_BUTTON)\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): carousel.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's carousel.js\n * Bootstrap (v5.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, EVENT_MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement &&\n this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): class-toggler.js\n * Licensed under MIT (https://coreui.io/license)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'class-toggler'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.class-toggler'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n breakpoints: '-sm,-md,-lg,-xl',\n postfix: '-show',\n responsive: false,\n target: 'body'\n}\n\nconst CLASS_NAME_CLASS_TOGGLER = 'c-class-toggler'\n\nconst EVENT_CLASS_TOGGLE = 'classtoggle'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_CLASS_TOGGLER = '.c-class-toggler'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ClassToggler {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n toggle() {\n this._getElementDataAttributes(this._element).forEach(dataAttributes => {\n let element\n const { target, toggle } = dataAttributes\n if (target === '_parent' || target === 'parent') {\n element = this._element.parentNode\n } else {\n element = document.querySelector(target)\n }\n\n toggle.forEach(object => {\n const { className, responsive, postfix } = object\n const breakpoints = (typeof object.breakpoints === 'undefined' || object.breakpoints === null) ? null : this._arrayFromString(object.breakpoints)\n\n // eslint-disable-next-line no-negated-condition\n if (!responsive) {\n const add = element.classList.toggle(className)\n const event = new CustomEvent(EVENT_CLASS_TOGGLE, {\n detail: {\n target,\n add,\n className\n }\n })\n element.dispatchEvent(event)\n } else {\n let currentBreakpoint\n breakpoints.forEach(breakpoint => {\n if (className.includes(breakpoint)) {\n currentBreakpoint = breakpoint\n }\n })\n const responsiveClassNames = []\n if (typeof currentBreakpoint === 'undefined') {\n responsiveClassNames.push(className)\n } else {\n responsiveClassNames.push(className.replace(`${currentBreakpoint}${postfix}`, postfix))\n breakpoints.splice(0, breakpoints.indexOf(currentBreakpoint) + 1).forEach(breakpoint => {\n responsiveClassNames.push(className.replace(`${currentBreakpoint}${postfix}`, `${breakpoint}${postfix}`))\n })\n }\n\n let addResponsiveClasses = false\n responsiveClassNames.forEach(responsiveClassName => {\n if (element.classList.contains(responsiveClassName)) {\n addResponsiveClasses = true\n }\n })\n\n if (addResponsiveClasses) {\n responsiveClassNames.forEach(responsiveClassName => {\n element.classList.remove(responsiveClassName)\n const event = new CustomEvent(EVENT_CLASS_TOGGLE, {\n detail: {\n target,\n add: false,\n className: responsiveClassName\n }\n })\n element.dispatchEvent(event)\n })\n } else {\n element.classList.add(className)\n const event = new CustomEvent(EVENT_CLASS_TOGGLE, {\n detail: {\n target,\n add: true,\n className\n }\n })\n element.dispatchEvent(event)\n }\n }\n })\n })\n }\n\n // Private\n\n _arrayFromString(string) {\n return string.replace(/ /g, '').split(',')\n }\n\n _isArray(array) {\n try {\n JSON.parse(array.replace(/'/g, '\"'))\n return true\n } catch {\n return false\n }\n }\n\n _convertToArray(array) {\n return JSON.parse(array.replace(/'/g, '\"'))\n }\n\n _getDataAttributes(data, attribute) {\n const dataAttribute = data[attribute]\n return this._isArray(dataAttribute) ? this._convertToArray(dataAttribute) : dataAttribute\n }\n\n _getToggleDetails(classNames, responsive, breakpoints, postfix) {\n class ToggleDetails {\n // eslint-disable-next-line default-param-last\n constructor(className, responsive = Default.responsive, breakpoints, postfix) {\n this.className = className\n this.responsive = responsive\n this.breakpoints = breakpoints\n this.postfix = postfix\n }\n }\n\n const toggle = []\n\n if (Array.isArray(classNames)) {\n classNames.forEach((className, index) => {\n responsive = Array.isArray(responsive) ? responsive[index] : responsive\n breakpoints = responsive ? (Array.isArray(breakpoints) ? breakpoints[index] : breakpoints) : null\n postfix = responsive ? (Array.isArray(postfix) ? postfix[index] : postfix) : null\n toggle.push(new ToggleDetails(className, responsive, breakpoints, postfix))\n })\n } else {\n breakpoints = responsive ? breakpoints : null\n postfix = responsive ? postfix : null\n toggle.push(new ToggleDetails(classNames, responsive, breakpoints, postfix))\n }\n\n return toggle\n }\n\n _ifArray(array, index) {\n return Array.isArray(array) ? array[index] : array\n }\n\n _getElementDataAttributes(element) {\n const data = element.dataset\n const targets = (typeof data.target === 'undefined') ? Default.target : this._getDataAttributes(data, 'target')\n const classNames = (typeof data.class === 'undefined') ? 'undefined' : this._getDataAttributes(data, 'class')\n const responsive = (typeof data.responsive === 'undefined') ? Default.responsive : this._getDataAttributes(data, 'responsive')\n const breakpoints = (typeof data.breakpoints === 'undefined') ? Default.breakpoints : this._getDataAttributes(data, 'breakpoints')\n const postfix = (typeof data.postfix === 'undefined') ? Default.postfix : this._getDataAttributes(data, 'postfix')\n\n const toggle = []\n\n class TargetDetails {\n constructor(target, toggle) {\n this.target = target\n this.toggle = toggle\n }\n }\n\n if (Array.isArray(targets)) {\n targets.forEach((target, index) => {\n toggle.push(new TargetDetails(target, this._getToggleDetails(this._ifArray(classNames, index), this._ifArray(responsive, index), this._ifArray(breakpoints, index), this._ifArray(postfix, index))))\n })\n } else {\n toggle.push(new TargetDetails(targets, this._getToggleDetails(classNames, responsive, breakpoints, postfix)))\n }\n\n return toggle\n }\n\n // Static\n\n static _classTogglerInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ClassToggler(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n ClassToggler._classTogglerInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_CLASS_TOGGLER, event => {\n event.preventDefault()\n let toggler = event.target\n if (!toggler.classList.contains(CLASS_NAME_CLASS_TOGGLER)) {\n toggler = toggler.closest(SELECTOR_CLASS_TOGGLER)\n }\n\n ClassToggler._classTogglerInterface(toggler, 'toggle')\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .c-class-toggler to jQuery only if jQuery is present\n */\n\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ClassToggler.jQueryInterface\n $.fn[NAME].Constructor = ClassToggler\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ClassToggler.jQueryInterface\n }\n}\n\nexport default ClassToggler\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): collapse.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's collapse.js\n * Bootstrap (v5.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(WIDTH)\n return hasWidth ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n}\n\nexport default Collapse\n","export default function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}","/*:: import type { Window } from '../types'; */\n\n/*:: declare function getWindow(node: Node | Window): Window; */\nexport default function getWindow(node) {\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getWindow from \"./getWindow.js\";\n/*:: declare function isElement(node: mixed): boolean %checks(node instanceof\n Element); */\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n/*:: declare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement); */\n\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nexport { isElement, isHTMLElement };","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe: assume body is always available\n return (isElement(element) ? element.ownerDocument : element.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\"; // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (!isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element) {\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n // $FlowFixMe: need a better way to handle this...\n element.host || // ShadowRoot detected\n // $FlowFixMe: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nexport default function listScrollParents(element, list) {\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = getNodeName(scrollParent) === 'body';\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n}\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element); // Find the nearest non-table offsetParent\n\n while (offsetParent && isTableElement(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static') {\n return window;\n }\n\n return offsetParent || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nexport * from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, {}, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(options) {\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, {}, state.options, {}, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator();","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, {}, current, {\n options: Object.assign({}, existing.options, {}, current.options),\n data: Object.assign({}, existing.data, {}, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = Math.floor(offsets[mainAxis]) - Math.floor(reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = Math.floor(offsets[mainAxis]) + Math.ceil(reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsets(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: Math.round(x * dpr) / dpr || 0,\n y: Math.round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive;\n\n var _roundOffsets = roundOffsets(offsets),\n x = _roundOffsets.x,\n y = _roundOffsets.y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n } // $FlowFixMe: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n /*:: offsetParent = (offsetParent: Element); */\n\n\n if (placement === top) {\n sideY = bottom;\n y -= offsetParent.clientHeight - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right;\n x -= offsetParent.clientWidth - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref3) {\n var state = _ref3.state,\n options = _ref3.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, {}, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\n\nfunction toNumber(cssValue) {\n return parseFloat(cssValue) || 0;\n}\n\nexport default function getBorders(element) {\n var computedStyle = isHTMLElement(element) ? getComputedStyle(element) : {};\n return {\n top: toNumber(computedStyle.borderTopWidth),\n right: toNumber(computedStyle.borderRightWidth),\n bottom: toNumber(computedStyle.borderBottomWidth),\n left: toNumber(computedStyle.borderLeftWidth)\n };\n}","import getBorders from \"./getBorders.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getWindow from \"./getWindow.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\"; // Borders + scrollbars\n\nexport default function getDecorations(element) {\n var win = getWindow(element);\n var borders = getBorders(element);\n var isHTML = getNodeName(element) === 'html';\n var winScrollBarX = getWindowScrollBarX(element);\n var x = element.clientWidth + borders.right;\n var y = element.clientHeight + borders.bottom; // HACK:\n // document.documentElement.clientHeight on iOS reports the height of the\n // viewport including the bottom bar, even if the bottom bar isn't visible.\n // If the difference between window innerHeight and html clientHeight is more\n // than 50, we assume it's a mobile bottom bar and ignore scrollbars.\n // * A 50px thick scrollbar is likely non-existent (macOS is 15px and Windows\n // is about 17px)\n // * The mobile bar is 114px tall\n\n if (isHTML && win.innerHeight - element.clientHeight > 50) {\n y = win.innerHeight - borders.bottom;\n }\n\n return {\n top: isHTML ? 0 : element.clientTop,\n right: // RTL scrollbar (scrolling containers only)\n element.clientLeft > borders.left ? borders.right : // LTR scrollbar\n isHTML ? win.innerWidth - x - winScrollBarX : element.offsetWidth - x,\n bottom: isHTML ? win.innerHeight - y : element.offsetHeight - y,\n left: isHTML ? winScrollBarX : element.clientLeft\n };\n}","export default function contains(parent, child) {\n // $FlowFixMe: hasOwnProperty doesn't seem to work in tests\n var isShadow = Boolean(child.getRootNode && child.getRootNode().host); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (isShadow) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDecorations from \"./getDecorations.js\";\nimport contains from \"./contains.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(element);\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement);\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n var decorations = getDecorations(isHTMLElement(clippingParent) ? clippingParent : getDocumentElement(element));\n accRect.top = Math.max(rect.top + decorations.top, accRect.top);\n accRect.right = Math.min(rect.right - decorations.right, accRect.right);\n accRect.bottom = Math.min(rect.bottom - decorations.bottom, accRect.bottom);\n accRect.left = Math.max(rect.left + decorations.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var visualViewport = win.visualViewport;\n var width = win.innerWidth;\n var height = win.innerHeight; // We don't know which browsers have buggy or odd implementations of this, so\n // for now we're only applying it to iOS to fix the keyboard issue.\n // Investigation required\n\n if (visualViewport && /iPhone|iPod|iPad/.test(navigator.platform)) {\n width = visualViewport.width;\n height = visualViewport.height;\n }\n\n return {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n}","import getCompositeRect from \"./getCompositeRect.js\";\nimport getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getDocumentRect(element) {\n var win = getWindow(element);\n var winScroll = getWindowScroll(element);\n var documentRect = getCompositeRect(getDocumentElement(element), win);\n documentRect.height = Math.max(documentRect.height, win.innerHeight);\n documentRect.width = Math.max(documentRect.width, win.innerWidth);\n documentRect.x = -winScroll.scrollLeft;\n documentRect.y = -winScroll.scrollTop;\n return documentRect;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), {}, paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var referenceElement = state.elements.reference;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(referenceElement);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, {}, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\n\n/*:: type OverflowsMap = { [ComputedPlacement]: number }; */\n\n/*;; type OverflowsMap = { [key in ComputedPlacement]: number }; */\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = (variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements).filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n }); // $FlowFixMe: Flow seems to have problems with two array unions...\n\n var overflows = placements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","export default function within(min, value, max) {\n return Math.max(min, Math.min(value, max));\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator } from \"./index.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? Math.min(min, tetherMin) : min, offset, tether ? Math.max(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(_min, _offset, _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = state.modifiersData[name + \"#persistent\"].padding;\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element,\n _options$padding = options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n state.modifiersData[name + \"#persistent\"] = {\n padding: mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements))\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): dropdown.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's dropdown.js\n * Bootstrap (v5.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport { createPopper } from '@popperjs/core'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_HEADER = 'c-header'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_HEADER_NAV = '.c-header-nav'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: [0, 0],\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(array|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n this._inHeader = this._detectHeader()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._menu.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && !this._inHeader) {\n if (typeof createPopper === 'undefined') {\n throw new TypeError('CoreUI\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = createPopper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_HEADER_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(parent, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(parent, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n this._inHeader = this._detectHeader()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n const parent = Dropdown.getParentFromElement(this._element)\n\n return SelectorEngine.findOne(SELECTOR_MENU, parent)\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`))\n }\n\n _detectHeader() {\n return Boolean(this._element.closest(`.${CLASS_NAME_HEADER}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n },\n {\n name: 'flip',\n enabled: this._config.flip\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }\n ]\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON ||\n (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n parent.classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = parent.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.key === ARROW_UP_KEY && index > 0) { // Up\n index--\n }\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): modal.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's modal.js\n * Bootstrap (v5.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\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\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): tooltip.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's tooltip.js\n * Bootstrap (v5.0.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport { createPopper } from '@popperjs/core'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '
' +\n '
' +\n '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof createPopper === 'undefined') {\n throw new TypeError('CoreUI\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(this.element.closest(`.${CLASS_NAME_MODAL}`), 'hide.coreui.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n // this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = createPopper(this.element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n },\n {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n },\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: this.config.boundary\n }\n }\n ],\n onFirstUpdate: data => {\n if (data.originalPlacement !== data.placement) {\n // this._handlePopperPlacementChange(data)\n\n // fix Popper position issue\n //TODO: find where is the problem or find better solution\n this._popper.update()\n }\n }\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n // _addAttachmentClass(attachment) {\n // this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n // }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(this.element.closest(`.${CLASS_NAME_MODAL}`),\n 'hide.coreui.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n console.log(this.tip)\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // _handlePopperPlacementChange(popperData) {\n // console.log(popperData)\n // const popperInstance = popperData.elements.popper\n // this.tip = document.getElementById(popperInstance.getAttribute('id'))\n // console.log(this.tip)\n // this._cleanTipClass()\n // this._addAttachmentClass(this._getAttachment(popperData.placement))\n // }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('data-popper-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): popover.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's popover.js\n * Bootstrap (v5.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.2.0): scrollspy.js\n * Licensed under MIT (https://coreui.io/license)\n *\n * This component is a modified version of the Bootstrap's scrollspy.js\n * Bootstrap (v5.0.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '3.2.0'\nconst DATA_KEY = 'coreui.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine\n .parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both