{"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/dom/selector-engine.js","../../js/src/alert.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/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/getComputedStyle.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/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/utils/computeAutoPlacement.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","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","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","makeArray","nodeList","slice","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","set","key","data","get","keyProperties","delete","Data","instance","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","_","hasId","Boolean","replace","removeAttribute","$","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NAME","ClassName","ACTIVE","NAV_DROPDOWN_TOGGLE","SHOW","VIEW_SCRIPT","CLICK_DATA_API","XHR_STATUS","Selector","Default","defaultPage","errorPage","subpagesDirectory","AsyncLoad","_config","_getConfig","_element","url","location","hash","_setUpUrl","_addEventListeners","_objectSpread2","_loadPage","_this","xhr","XMLHttpRequest","open","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","_loadBlank","_loadTop","_update","link","dataset","toggle","_this2","contains","NAV_LINK","_asyncLoadInterface","TypeError","jQueryInterface","each","JQUERY_NO_CONFLICT","Constructor","noConflict","SelectorEngine","documentElement","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","CLOSE","CLOSED","Alert","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","_destroyElement","removeChild","handleDismiss","alertInstance","getInstance","DATA_KEY","FOCUS_DATA_API","BLUR_DATA_API","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","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","next","_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","CLASS_TOGGLE","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","SHOWN","HIDE","HIDDEN","Dimension","Collapse","_isTransitioning","_triggerArray","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","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","scroll","offsets","clientLeft","clientTop","getLayoutRect","offsetWidth","getParentNode","host","listScrollParents","list","scrollParent","getScrollParent","_getComputedStyle","overflow","overflowX","overflowY","isBody","updatedList","concat","isTableElement","getTrueOffsetParent","InstallTrigger","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","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","_ref","basePlacement","variation","commonX","commonY","mainAxis","floor","ceil","unsetSides","mapToStyles","_ref2","_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","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","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","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","overflows","a","b","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_preventedOffset","_state$modifiersData$","minProp","maxProp","centerToReference","center","axisProp","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","data-popper-reference-hidden","data-popper-escaped","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","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","HIDE_PREVENTED","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","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","l","allowedAttribute","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","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","_addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","CLASS_PREFIX","eventIn","eventOut","_fixTitle","titleType","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","_getOffsetHeight","maxScroll","_activate","_clear","queries","join","listGroup","navItem","spy","elMatches","mozMatchesSelector","query","queryChildren","cls","thumb","rail","consuming","clicking","active","scrolling","scrollingClassTimeout","addScrollingClass","removeScrollingClass","isAlive","settings","scrollingThreshold","EventElement","prototypeAccessors","isEmpty","unbind","this$1","unbindAll","defineProperties","EventManager","eventElements","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","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","OPEN","OPENED","Sidebar","_open","_isVisible","_mobile","_isMobile","_overlaid","_isOverlaid","_minimize","_isMinimized","_unfoldable","_isUnfoldable","_setActiveLink","_ps","_psInit","_addClassName","_firstBreakpointClassName","_addClickOutListener","_getBreakpointClassName","_removeClickOutListener","minimize","_psDestroy","unfoldable","getPropertyValue","_clickOutListener","sidebar","_getAllSiblings","firstChild","nextSibling","_toggleDropdown","_psUpdate","_getParents","currentUrl","String","_sidebarInterface","Tab","listElement","itemSelector","hideEvent","_transitionComplete","dropdownChild","dropdown","toStr","isCallable","maxSafeInteger","toLength","autohide","Toast","pow","number","isFinite","toInteger","arrayLike","C","T","mapFn","kValue","A","k","matchesSelector","oMatchesSelector","predicate","o","thisArg","Scrollspy"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): 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 => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\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 const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\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 makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\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 makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): 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 (v4.3.1): 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 { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('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\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\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 createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): 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 { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\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 fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\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 fixEvent(event, target)\n\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.bs.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 = createCustomEvent(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.0.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.0.0-rc.4'\nconst DATA_KEY = 'coreui.asyncLoad'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'c-active',\n NAV_DROPDOWN_TOGGLE: 'c-sidebar-nav-dropdown-toggle',\n SHOW: 'c-show',\n VIEW_SCRIPT: 'view-script'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n XHR_STATUS: 'xhr'\n}\n\nconst Selector = {\n NAV_DROPDOWN: '.c-sidebar-nav-dropdown',\n NAV_LINK: '.c-xhr-link, .c-sidebar-nav-link',\n NAV_ITEM: '.c-sidebar-nav-item',\n VIEW_SCRIPT: '.view-script'\n}\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 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 = ClassName.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(ClassName.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(ClassName.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(ClassName.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(ClassName.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(ClassName.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(ClassName.NAV_LINK)) {\n link = link.closest(Selector.NAV_LINK)\n }\n\n if (!link.classList.contains(ClassName.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 * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n return 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 = makeArray(element.children)\n\n return children.filter(child => this.matches(child, 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 closest(element, selector) {\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n const siblings = []\n\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * CoreUI (v3.0.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 (v4.3.1): 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'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '3.0.0-rc.4'\nconst DATA_KEY = 'coreui.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\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 let parent = getElementFromSelector(element)\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\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 * CoreUI (v3.0.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 (v4.3.1): 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.0.0-rc.4'\nconst DATA_KEY = 'coreui.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\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 = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\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(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.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(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.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 let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\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 = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.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 (v4.3.1): 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.0.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 (v4.3.1): 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 makeArray,\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.0.0-rc.4'\nconst DATA_KEY = 'coreui.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\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 = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\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 makeArray(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(ClassName.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.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(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(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.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 = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.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(ClassName.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)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(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(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.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(ClassName.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 = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\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.0.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.0.0-rc.4'\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 ClassName = {\n CLASS_TOGGLER: 'c-class-toggler'\n}\n\nconst Event = {\n CLASS_TOGGLE: 'classtoggle',\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst Selector = {\n CLASS_TOGGLER: '.c-class-toggler'\n}\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(ClassName.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.0.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 (v4.3.1): 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 makeArray,\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.0.0-rc.4'\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 = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\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 = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(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(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(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(ClassName.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(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.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(ClassName.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(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.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(ClassName.SHOW)) {\n trigger.classList.add(ClassName.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(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.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(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.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 = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(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(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.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 && /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 = makeArray(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;\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;\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 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\"; // 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;\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') {\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 = getDocumentElement(offsetParent)) {\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\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return element.parentNode || // DOM Element detected\n // $FlowFixMe: need a better way to handle this...\n element.host || // ShadowRoot detected\n document.ownerDocument || // Fallback to ownerDocument if available\n document.documentElement // Or to documentElement if everything else fails\n ;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getWindow from \"./getWindow.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 target = isBody ? getWindow(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 getComputedStyle from \"./getComputedStyle.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)) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(node),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n if (/auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX)) {\n return node;\n }\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\"; // https://stackoverflow.com/a/9851769/2059996\n\nvar isFirefox = function isFirefox() {\n return typeof window.InstallTrigger !== 'undefined';\n};\n\nfunction getTrueOffsetParent(element) {\n var offsetParent;\n\n if (!isHTMLElement(element) || !(offsetParent = element.offsetParent) || // https://github.com/popperjs/popper-core/issues/837\n isFirefox() && getComputedStyle(offsetParent).position === 'fixed') {\n return null;\n }\n\n return 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 =\n/*#__PURE__*/\nbasePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements =\n/*#__PURE__*/\n[].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 \"./types.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) : [],\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 =\n/*#__PURE__*/\npopperGenerator();","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\";\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}\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}\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\";\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 _getComputedStyle = getComputedStyle(state.elements.popper),\n transitionProperty = _getComputedStyle.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 }; // popper offsets are always available\n\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 }))); // arrow offsets may not be available\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}\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 state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n state.modifiersData[name] = data;\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 return {\n width: win.innerWidth,\n height: win.innerHeight,\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\";\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 : 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}","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}\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\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper =\n/*#__PURE__*/\npopperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers };","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: 'absolute',\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}\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\";\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 specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio;\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 }) : 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 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 = [overflow[_basePlacement] <= 0, overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0];\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}\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements; // $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}","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 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 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 });\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 (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 offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue;\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 state.modifiersData.popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\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 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\";\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) {\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 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 center = within(paddingObject[minProp], state.rects.popper[len] / 2 - arrowRect[len] / 2 + centerToReference, state.rects.popper[len] - arrowRect[len] - paddingObject[maxProp]); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = 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; // CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\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}\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.0.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 (v4.3.1): 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 makeArray,\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.0.0-rc.4'\nconst DATA_KEY = 'coreui.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n HEADER_NAV: '.c-header-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\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(ClassName.DISABLED)) {\n return\n }\n\n const isActive = this._menu.classList.contains(ClassName.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(ClassName.DISABLED) || this._menu.classList.contains(ClassName.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('Bootstrap\\'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(ClassName.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 !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.HEADER_NAV)).length) {\n makeArray(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, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.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, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.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 = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _detectHeader() {\n return Boolean(SelectorEngine.closest(this._element, '.c-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.which === RIGHT_MOUSE_BUTTON_WHICH ||\n (event.type === 'keyup' && event.which !== TAB_KEYCODE))) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\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(ClassName.SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.which === TAB_KEYCODE)) &&\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 makeArray(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(ClassName.SHOW)\n parent.classList.remove(ClassName.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.which === SPACE_KEYCODE || (event.which !== ESCAPE_KEYCODE &&\n ((event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE) ||\n SelectorEngine.closest(event.target, Selector.MENU))) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || (isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE))) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown.clearMenus()\n return\n }\n\n const items = makeArray(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.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\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.0.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 (v4.3.1): 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 makeArray,\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.0.0-rc.4'\nconst DATA_KEY = 'coreui.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\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 = {\n HIDE: `hide${EVENT_KEY}`,\n HIDE_PREVENTED: `hidePrevented${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show',\n STATIC: 'modal-static'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\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(ClassName.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(ClassName.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(ClassName.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(ClassName.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\n if (this._dialog.classList.contains(ClassName.SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.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 && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\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(ClassName.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(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.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(ClassName.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(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(ClassName.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(ClassName.STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(ClassName.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 = 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 makeArray(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 makeArray(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(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(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 makeArray(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 = ClassName.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 (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\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,[a-z0-9+/]+=*$/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, l = regExp.length; i < l; 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', '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 = makeArray(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 = makeArray(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.0.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 (v4.3.1): 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 makeArray,\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.0.0-rc.4'\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 fallbackPlacement: '(string|array)',\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 fallbackPlacement: ['top', 'right', 'bottom', 'left'],\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\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 ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof createPopper === 'undefined') {\n throw new TypeError('Bootstrap\\'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.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, 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(ClassName.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(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.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(ClassName.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(ClassName.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 makeArray(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 === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.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 !== HoverState.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(ClassName.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 makeArray(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(ClassName.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(ClassName.FADE)\n tip.classList.remove(ClassName.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.innerText = 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.innerText = 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: 'flip',\n options: {\n fallbackPlacements: this.config.fallbackPlacement\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 onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\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(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.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.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, 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(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.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 === HoverState.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.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, 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 = HoverState.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 === HoverState.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 const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\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('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\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\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.0.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 (v4.3.1): 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.0.0-rc.4'\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 ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\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\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(ClassName.FADE)\n tip.classList.remove(ClassName.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\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.0.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 (v4.3.1): 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 makeArray,\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.0.0-rc.4'\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 = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\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} .${ClassName.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 OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(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') {\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 const offsetLength = this._offsets.length\n for (let i = offsetLength; 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(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both