Rev 637 | Rev 846 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/event-handler.js","../../js/src/dom/data.js","../../js/src/base-component.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/util/scrollbar.js","../../js/src/util/backdrop.js","../../js/src/util/focustrap.js","../../js/src/modal.js","../../js/src/offcanvas.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","queryS
elector","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","jquery","nodeType","getElement","length","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","getClientRects","getPropertyValue","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","reflow","offsetHeight","getjQuery","jQuery","body","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","isRTL","dir","defineJQueryPlugin","plugin","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","execute","executeAfter
Transition","transitionElement","waitForTransition","emulatedDuration","called","handler","target","removeEventListener","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","index","indexOf","listLength","max","min","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","Set","getUidEvent","uid","getEvent","bootstrapHandler","event","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","this","i","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","has","addHandler","wrapFn","relatedTarget","handlers","previousFn","replace","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","elementEvent","slice","
keyHandlers","trigger","args","isNative","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","elementMap","Map","Data","set","instance","instanceMap","size","console","error","Array","from","remove","delete","VERSION","BaseComponent","constructor","_element","DATA_KEY","dispose","EVENT_KEY","getOwnPropertyNames","propertyName","_queueCallback","isAnimated","static","getInstance","Error","enableDismissTrigger","component","method","clickEvent","tagName","closest","getOrCreateInstance","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","close","_destroyElement","each","data","undefined","DATA_API_KEY","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE","EVENT_CLICK_DATA_API","Button","toggle","setAttribute","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttrib
ute","removeAttribute","getDataAttributes","attributes","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","pageYOffset","left","pageXOffset","position","offsetTop","offsetLeft","NODE_TEXT","SelectorEngine","find","concat","Element","prototype","findOne","children","child","matches","parents","ancestor","prev","previous","previousElementSibling","next","nextElementSibling","focusableChildren","focusables","map","join","el","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","ArrowLeft","ArrowRight","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_
START","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","Carousel","super","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","activeIndex","_getItemIndex","order","_handleSwipe","absDeltax","abs","direction","_keydown","_addTouchEventListeners","hasPointerPenTouch","pointerType","start","clientX","touches","move","end","clearTimeout","itemImg","add","_getItemByOrder","isNext","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","_setActiveIndica
torElement","activeIndicator","indicators","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","triggerSlidEvent","completeCallBack","action","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activesData","actives","container","tempActiveData","elemActive","dimension","_getDimension","style","scrollSize","triggerArrayLength","selected","triggerArray","isOpen","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT
_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","reference","display","popperConfig","autoClose","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_createPopper","focus","_completeHide","destroy","update","Popper","referenceElement","_getPopperConfig","isDisplayStatic","modifiers","modifier","enabled","createPopper","_getPlacement","parentDropdown","isEnd","_getOffset","popperData","defaultBsPopperConfig","placement","options","_selectMenuItem","items","toggles","context","composedPath","isMenuTarget","isActive","stopPropagation","getToggleButton","clearMenus","dataApiKeydownHandler","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","getWidth","d
ocumentWidth","clientWidth","innerWidth","width","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","overflow","styleProp","scrollbarWidth","_applyManipulationCallback","reset","_resetElementAttributes","actualValue","removeProperty","callBack","isOverflowing","className","rootElement","clickCallback","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","backdrop","createElement","append","trapElement","autofocus","EVENT_FOCUSIN","EVENT_KEYDOWN_TAB","TAB_NAV_FORWARD","TAB_NAV_BACKWARD","FocusTrap","_isActive","_lastTabNavDirection","activate","_handleFocusin","_handleKeydown","deactivate","elements","shiftKey","EVENT_HIDE_PREVENTED","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_STATIC","OPEN_SELECTOR","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","Modal","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_ignoreBackdropClick
","_scrollBar","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","htmlElement","handleUpdate","modalBody","scrollTop","_triggerBackdropTransition","_resetAdjustments","currentTarget","scrollHeight","isModalOverflowing","clientHeight","overflowY","isBodyOverflowing","paddingLeft","paddingRight","showEvent","allReadyOpen","scroll","CLASS_NAME_BACKDROP","Offcanvas","visibility","blur","uriAttributes","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","regExp","attributeRegex","DefaultAllowlist","a","area","b","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","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","elementName","attributeList","allowedAttributes","innerHTML","CLASS_PREFIX","DISALLOWED_ATTRIBUTES","anim
ation","template","title","delay","html","fallbackPlacements","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_disposePopper","isWithContent","shadowRoot","isInTheDom","ownerDocument","getTitle","tipId","attachment","_getAttachment","_addAttachmentClass","_resolvePossibleFunction","prevHoverState","_cleanTipClass","setContent","_sanitizeAndSetContent","content","templateElement","setElementContent","textContent","updateAttachment","_getDelegateConfig","phase","_handlePop
perPlacementChange","onFirstUpdate","_getBasicClassPrefix","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","basicClassPrefixRegex","tabClass","token","tClass","state","popper","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","hideEvent","com
plete","active","isTransitioning","_transitionComplete","dropdownChild","dropdownElement","dropdown","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSOUT","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","_onInteraction","isInteracting"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * -------------
-------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes
('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\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 { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransiti
onDelay) {\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 (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n if (isElement(obj)) { // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expe
ctedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\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 = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n retu
rn null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback())\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callb
ack => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @pa
ram isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n getElement,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n getNextActiveElement,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin,\n execute,\n executeAfterTransi
tion\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst customEventsRegex = /^(mouseenter|mouseleave)/i\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mouse
move',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] ||
{}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n 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 event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\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 let typeEvent = getTypeEvent(originalTypeEvent)\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // thi
s prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn)\n } else {\n handler = wrapFn(handler)\n }\n }\n\n 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).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.origin
alHandler, event.delegationSelector)\n }\n })\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\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.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler
is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\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 $ = getjQuery()\n const typeEvent = getTypeEven
t(event)\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n Object.keys(args).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\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 * Bootstrap (v5.1.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it
clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3):
base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\nimport {\n executeAfterTransition,\n getElement\n} from './util/index'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.1.3'\n\nclass BaseComponent {\n constructor(element) {\n element = getElement(element)\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n Object.getOwnPropertyNames(this).forEach(propertyName => {\n this[propertyName] = null\n })\n }\
n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------
------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { getElementFromSelector, isDisabled } from './index'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nexport {\n enableDismissTrigger\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/
LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Publ
ic\n\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------
\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nenableDismissTrigger(Alert, 'close')\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------
------------\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this)\n\n if (config === 'toggle') {\n
data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * ---------------------------------------------
-----------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\
n attributes[pureKey] = normalizeData(element.dataset[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------
------------------\n */\n\nimport { isDisabled, isVisible } from '../util/index'\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children)\n .filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n i
f (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(', ')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * ------------
--------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isRTL,\n isVisible,\n getNextActiveElement,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\
n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `
load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------
------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\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._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // Don't cal
l 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 this._slide(ORDER_PREV)\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._updateInterval()\n\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 = SelectorEngin
e.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 order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? 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 if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event))\n EventHandler.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 hasPointerPenTouch = event => {\n return this._pointerEvent &&\n (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n const start = event => {\n if (hasPointerPenTouch(event)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].client
X\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (hasPointerPenTouch(event)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n
clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, event => event.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\
n if (direction) {\n event.preventDefault()\n this._slide(direction)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap)\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 activeIndicator = SelectorEngine.findOne(SELECT
OR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n
} else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n if (this._isSliding) {\n return\n }\n\n const slideEvent = this._trig
gerSlideEvent(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 this._activeElement = nextElement\n\n const triggerSlidEvent = () => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassNa
me)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n setTimeout(triggerSlidEvent, 0)\n }\n\n this._queueCallback(completeCallBack, activeElement, true)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n triggerSlidEvent()\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === O
RDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n const data = Carousel.getOrCreateInstance(element, config)\n\n let { _config } = data\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 (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 targ
et = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {
\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElement,\n getSelectorFromElement,\n getElementFromSelector,\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'\nimport BaseComponent fr
om './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: null\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(null|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'
\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === this._element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n
}\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let actives = []\n let activesData\n\n if (this._config.parent) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem)) // remove children if greater depth\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives.length) {\n const tempActiveData = actives.find(el
em => container !== elem)\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : 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 actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.getOrCreateInstance(elemActive, { toggle: false }).hide()\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY, null)\n }\n })\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\
n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this.
_triggerArray.length\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !this._isShown(elem)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.par
ent = getElement(config.parent)\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n SelectorEngine.find(SELECTOR_DATA_TOGGLE, this._config.parent).filter(elem => !children.includes(elem))\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n })\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n
elem.setAttribute('aria-expanded', isOpen)\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const _config = {}\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n const data = Collapse.getOrCreateInstance(this, _config)\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\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 <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && ev
ent.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Collapse)\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElement,\n getElementFromSelector,\n getNextActiveElement
,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EV
ENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'ri
ght-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n
return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\n this._createPopper(parent)\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.ht
ml\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', noop))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler
.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', noop))\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (typeof config.ref
erence === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper(parent) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (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 = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers
.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n ret
urn isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifier
s = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No m
ethod named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Dropdown.getInstance(toggles[i])\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n if (!context._isShown()) {\n continue\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n }\n\n if (event) {\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n
continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n 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 (/in
put|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (!isActive && event.key === ESCAPE_KEY) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (isDisabled(this)) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (event.key === ESCAPE_KEY) {\n instance.hide()\n return\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show()\n }\n\n instance._selectMenuItem(event)\n return\n }\n\n if (!i
sActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n }\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 Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\nd
efineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\nimport { isElement } from './index'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body\n }\n\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth\n return Math.abs(window.innerWidth - documentWidth)\n }\n\n hide() {\n const width = this.getWidth()\n this._disableOverFlow()\n // give
padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, 'paddingRight', calculatedValue => calculatedValue + width)\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n }\n\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow')\n this._element.style.overflow = 'hidden'\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n const scrollbarWidth = this.getWidth()\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n this._saveInitialAttribute(element, styleProp)\n const calculatedValue = win
dow.getComputedStyle(element)[styleProp]\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow')\n this._resetElementAttributes(this._element, 'paddingRight')\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n }\n\n _saveInitialAttribute(element, styleProp) {\n const actualValue = element.style[styleProp]\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n }\n }\n\n _resetElementAttributes(selector, styleProp) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribu
te(element, styleProp)\n element.style[styleProp] = value\n }\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector)\n } else {\n SelectorEngine.find(selector, this._element).forEach(callBack)\n }\n }\n\n isOverflowing() {\n return this.getWidth() > 0\n }\n}\n\nexport default ScrollBarHelper\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { execute, executeAfterTransition, getElement, reflow, typeCheckConfig } from './index'\n\nconst Default = {\n className: 'modal-backdrop',\n isVisible: true, // if false, we use the backdrop helper without addi
ng any element to the dom\n isAnimated: false,\n rootElement: 'body', // give the choice to place backdrop under different elements\n clickCallback: null\n}\n\nconst DefaultType = {\n className: 'string',\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n}\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nclass Backdrop {\n constructor(config) {\n this._config = this._getConfig(config)\n this._isAppended = false\n this._element = null\n }\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._append()\n\n if (this._config.isAnimated) {\n reflow(this._getElement())\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n execute(callback)\n })\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n
execute(callback)\n return\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n this.dispose()\n execute(callback)\n })\n }\n\n // Private\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div')\n backdrop.className = this._config.className\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n this._element = backdrop\n }\n\n return this._element\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {})\n }\n\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement)\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _append() {\n if (this._isAppended) {\n return\n }\n\n this._config.rootElement.append(this._getElement())\n\n Ev
entHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback)\n })\n\n this._isAppended = true\n }\n\n dispose() {\n if (!this._isAppended) {\n return\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n this._element.remove()\n this._isAppended = false\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n }\n}\n\nexport default Backdrop\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\nimport { typeCheckConfig } from './index'\n\nconst Default = {\n trapElement: null, // The element to trap focus inside of\n autofocus: tr
ue\n}\n\nconst DefaultType = {\n trapElement: 'element',\n autofocus: 'boolean'\n}\n\nconst NAME = 'focustrap'\nconst DATA_KEY = 'bs.focustrap'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`\n\nconst TAB_KEY = 'Tab'\nconst TAB_NAV_FORWARD = 'forward'\nconst TAB_NAV_BACKWARD = 'backward'\n\nclass FocusTrap {\n constructor(config) {\n this._config = this._getConfig(config)\n this._isActive = false\n this._lastTabNavDirection = null\n }\n\n activate() {\n const { trapElement, autofocus } = this._config\n\n if (this._isActive) {\n return\n }\n\n if (autofocus) {\n trapElement.focus()\n }\n\n EventHandler.off(document, EVENT_KEY) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event))\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event))\n\n this._isActive = true\n }\n\n deactivate() {\n
if (!this._isActive) {\n return\n }\n\n this._isActive = false\n EventHandler.off(document, EVENT_KEY)\n }\n\n // Private\n\n _handleFocusin(event) {\n const { target } = event\n const { trapElement } = this._config\n\n if (target === document || target === trapElement || trapElement.contains(target)) {\n return\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement)\n\n if (elements.length === 0) {\n trapElement.focus()\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus()\n } else {\n elements[0].focus()\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n}
\n\nexport default FocusTrap\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isRTL,\n isVisible,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport ScrollBarHelper from './util/scrollbar'\nimport BaseComponent from './base-component'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\ncon
st NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_S
TATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n toggle(relatedTarget) {\n r
eturn this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\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() {\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 isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n this._queueCallback(() => this._hideModal(), this._element, isAnimated)\n }\n\n dispose() {\n [window, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'stat
ic' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog
')\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated)\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n
_setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _showBackdrop(callback) {\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 if (this._config.backdrop === true) {\n this.hide()\n } else
if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n }\n })\n\n this._backdrop.show(callback)\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const { classList, scrollHeight, style } = this._element\n const isModalOverflowing = scrollHeight > document.documentElement.clientHeight\n\n // return if the following background transition hasn't yet completed\n if ((!isModalOverflowing && style.overflowY === 'hidden') || classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden'\n }\n\n classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n this._queueCallback(() =>
{\n style.overflowY = ''\n }, this._dialog)\n }\n }, this._dialog)\n\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if ((!isBodyOverflowing && isModalOverflowing && !isRTL()) || (isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${scrollbarWidth}px`\n }\n\n if ((isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style
.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n })\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 (['A', 'AREA'].includes(this.tagName)) {\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 // avoid conflict when clicking moddal toggler while another one is open\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (allReadyOpen) {\n Modal.getInstance(allReadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * -------------------------------
-------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport ScrollBarHelper from './util/scrollbar'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard:
true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._backdrop = this._initializeBackDrop()\n this._fo
custrap = this._initializeFocusTrap()\n this._addEventListeners()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\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) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n this._backdrop.show()\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide()\n }\n\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n if (!this._config.scroll) {\n this._focustrap.ac
tivate()\n }\n\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n }\n\n this._queueCallback(completeCallBack, this._element, true)\n }\n\n hide() {\n if (!this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._focustrap.deactivate()\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._backdrop.hide()\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._queueCallback(completeCallback, this._element, true)\n }\n\n dispose() {\n
this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _initializeBackDrop() {\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: () => this.hide()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const d
ata = Offcanvas.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\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 (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // avoid conflict when clicking a toggler of an offcanvas, while anothe
r is open\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n Offcanvas.getInstance(allReadyOpen).hide()\n }\n\n const data = Offcanvas.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () =>\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => Offcanvas.getOrCreateInstance(el).show())\n)\n\nenableDismissTrigger(Offcanvas)\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttributes = new Set([\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 https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (
uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attributeName)) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n su
b: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, 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 elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const element = elements[i]\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n attributeList.forEach(attribute => {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.remo
veAttribute(attribute.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n findShadowRoot,\n getElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport { DefaultAllowlist, sanitizeHtml } from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * --------------------------------------------------
----------------------\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', '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: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tool
tip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\ncon
st HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n }\n\n super(element)\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._config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get
Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get Event() {\n return Event\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 context = this._initializeOnDelegatedTarget(event)\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\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 EventHandler.off(this._ele
ment.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this.tip) {\n this.tip.remove()\n }\n\n this._disposePopper()\n super.dispose()\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 return\n }\n\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 // A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`\n // This will be removed later in favor of a `setContent` method\n if (this.constructor.NAME === 'tooltip' && this
.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) {\n this._disposePopper()\n this.tip.remove()\n this.tip = null\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 if (this._config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this._config.placement === 'function' ?\n this._config.placement.call(this, tip, this._element) :\n this._config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const { container } = this._config\n Data.set(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n }\n\n if (this._popper) {\n
this._popper.update()\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = this._resolvePossibleFunction(this._config.customClass)\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\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 [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop)\n })\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState\n\n this._hoverState = null\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === H
OVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(complete, this.tip, isAnimated)\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW) {\n tip.remove()\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n\n this._disposePopper()\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart
' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(complete, this.tip, isAnimated)\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update()\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 const tip = element.children[0]\n this.setContent(tip)\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n\n this.tip = tip\n return this.tip\n }\n\n setContent(tip) {\n this._san
itizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER)\n }\n\n _sanitizeAndSetContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!content && templateElement) {\n templateElement.remove()\n return\n }\n\n // we use append for html objects to maintain js events\n this.setElementContent(templateElement, content)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (isElement(content)) {\n content = getElement(content)\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.append(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this._config.html) {\n if (this._config.sanitize) {\n content = sanitizeHtml(content, this._config.allowList, this.
_config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n const title = this._element.getAttribute('data-bs-original-title') || this._config.title\n\n return this._resolvePossibleFunction(title)\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n\n _initializeOnDelegatedTarget(event, context) {\n return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _resolvePossibleFunction(content)
{\n return typeof content === 'function' ? content.call(this._element) : content\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n },\n {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }\n ],\n onFirstUpdate: data => {\n if (data.options.placement !== data.p
lacement) {\n this._handlePopperPlacementChange(data)\n }\n }\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`)\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, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event))\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 = tri
gger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this._config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._config.selector) {\n this._config = {\n ...this._config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', tit
le || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context._config.delay || !context._config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context._config.delay.show)\n }\n\
n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = context._element.contains(event.relatedTarget)\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context._config.delay || !context._config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context._config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n Object.keys(dataAttribu
tes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (con
st key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key]\n }\n }\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const basicClassPrefixRegex = new RegExp(`(^|\\\\s)${this._getBasicClassPrefix()}\\\\S+`, 'g')\n const tabClass = tip.getAttribute('class').match(basicClassPrefixRegex)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _getBasicClassPrefix() {\n return CLASS_PREFIX\n }\n\n _handlePopperPlacementChange(popperData) {\n const { state } = popperData\n\n if (!state) {\n return\n }\n\n this.t
ip = state.elements.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(state.placement))\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config)\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\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): popover.
js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\n
const 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 SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get Event() {\n return Event\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(tip) {\n this.
_sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE)\n this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT)\n }\n\n // Private\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n\n _getBasicClassPrefix() {\n return CLASS_PREFIX\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config)\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\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------
------------------------------\n * Bootstrap (v5.1.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElement,\n getSelectorFromElement,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.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\n
const EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(el
ement)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._co
nfig.target)\n\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\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 EventHandler.off(this._scrollElement, EVENT_KEY)\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n config.target = getElement(config.ta
rget) || document.documentElement\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 + scrollHeight - 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._activeTar
get !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' || 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 = SELECTOR_LINK_ITEMS.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','), this._config.target)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n } else {\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n
SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n *
------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isDisabled,\n reflow\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-ap
i'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponen
t {\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE))) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = previous ?\n EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) :\n null\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent
!== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning)
{\n active.classList.remove(CLASS_NAME_SHOW)\n this._queueCallback(complete, element, true)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n let parent = element.parentNode\n if (parent && parent.nodeName === 'LI') {\n parent = parent.parentNode\n }\n\n if
(parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this)\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\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_C
LICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const data = Tab.getOrCreateInstance(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-co
mponent'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: t
rue,\n autohide: true,\n delay: 5000\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.c
lassList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._ele
ment, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout':\n this._hasMouseInteraction = isInteracting\n break\n case 'focusin':\n case 'fo
cusout':\n this._hasKeyboardInteraction = isInteracting\n break\n default:\n break\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Toast.getOrCreateInstance(this, confi
g)\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](this)\n }\n })\n }\n}\n\nenableDismissTrigger(Toast)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Toast)\n\nexport default Toast\n"]}