aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/twbs/bootstrap/dist/js/bootstrap.esm.min.js.map
blob: 7af1738624448389b37ce7f97d527f5c3fb2a38b (plain) (blame)
1
{"version":3,"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","selector","window","CSS","escape","replace","match","id","toType","object","Object","prototype","toString","call","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","element","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","jquery","nodeType","getElement","length","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","parentNode","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","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","possibleCallback","args","defaultValue","executeAfterTransition","transitionElement","waitForTransition","emulatedDuration","called","handler","target","removeEventListener","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","bootstrapHandler","event","hydrateObj","delegateTarget","oneOff","EventHandler","off","type","apply","bootstrapDelegationHandler","domElements","querySelectorAll","this","domElement","findHandler","events","callable","delegationSelector","values","find","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","has","addHandler","wrapFunction","relatedTarget","handlers","previousFunction","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","includes","on","one","inNamespace","isNamespace","startsWith","elementEvent","keys","slice","keyHandlers","trigger","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","evt","cancelable","preventDefault","obj","meta","key","value","_unused","defineProperty","configurable","get","elementMap","Map","Data","set","instance","instanceMap","size","console","error","Array","from","remove","delete","normalizeData","JSON","parse","decodeURIComponent","normalizeDataKey","chr","Manipulator","setDataAttribute","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","Config","Default","DefaultType","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","property","expectedTypes","valueType","RegExp","test","TypeError","toUpperCase","VERSION","BaseComponent","super","_element","_config","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","static","getInstance","getSelector","hrefAttribute","trim","SelectorEngine","concat","Element","findOne","children","child","matches","parents","ancestor","prev","previous","previousElementSibling","next","nextElementSibling","focusableChildren","focusables","map","join","el","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","enableDismissTrigger","component","method","clickEvent","tagName","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","button","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","endCallback","leftCallback","rightCallback","Swipe","isSupported","_deltaX","_supportPointerEvents","PointerEvent","_initEvents","_start","_eventIsPointerPenTouch","clientX","touches","_end","_handleSwipe","_move","absDeltaX","abs","direction","add","pointerType","navigator","maxTouchPoints","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","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","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","ArrowLeft","ArrowRight","interval","keyboard","pause","ride","touch","wrap","Carousel","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","nextWhenVisible","hidden","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","to","items","_getItems","activeIndex","_getItemIndex","_getActive","order","defaultInterval","_keydown","_addTouchEventListeners","img","swipeConfig","_directionToOrder","clearTimeout","_setActiveIndicatorElement","activeIndicator","newActiveIndicator","elementInterval","parseInt","isNext","nextElement","nextElementIndex","triggerEvent","eventName","_orderToDirection","isCycling","directionalClassName","orderClassName","_isAnimated","clearInterval","carousel","slideIndex","carousels","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","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","activeInstance","dimension","_getDimension","style","scrollSize","getBoundingClientRect","selected","triggerArray","isOpen","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_DROPUP_CENTER","CLASS_NAME_DROPDOWN_CENTER","SELECTOR_DATA_TOGGLE_SHOWN","SELECTOR_MENU","SELECTOR_NAVBAR","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","PLACEMENT_TOPCENTER","PLACEMENT_BOTTOMCENTER","autoClose","boundary","display","offset","popperConfig","reference","Dropdown","_popper","_parent","_menu","_inNavbar","_detectNavbar","_createPopper","focus","_completeHide","destroy","update","Popper","referenceElement","_getPopperConfig","createPopper","_getPlacement","parentDropdown","isEnd","_getOffset","popperData","defaultBsPopperConfig","placement","modifiers","options","enabled","_selectMenuItem","openToggles","context","composedPath","isMenuTarget","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","stopPropagation","dataApiKeydownHandler","clearMenus","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","ScrollBarHelper","getWidth","documentWidth","clientWidth","innerWidth","width","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","overflow","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","sel","EVENT_MOUSEDOWN","className","clickCallback","rootElement","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","backdrop","createElement","append","EVENT_FOCUSIN","EVENT_KEYDOWN_TAB","TAB_NAV_FORWARD","TAB_NAV_BACKWARD","autofocus","trapElement","FocusTrap","_isActive","_lastTabNavDirection","activate","_handleFocusin","_handleKeydown","deactivate","elements","shiftKey","EVENT_HIDE_PREVENTED","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_KEYDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_STATIC","OPEN_SELECTOR","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","Modal","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_scrollBar","_adjustDialog","_showElement","_hideModal","htmlElement","handleUpdate","scrollTop","modalBody","_triggerBackdropTransition","event2","_resetAdjustments","isModalOverflowing","scrollHeight","clientHeight","initialOverflowY","overflowY","isBodyOverflowing","paddingLeft","paddingRight","showEvent","alreadyOpen","CLASS_NAME_SHOWING","CLASS_NAME_HIDING","CLASS_NAME_BACKDROP","scroll","Offcanvas","blur","position","uriAttributes","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","DefaultAllowlist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","i","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","createdDocument","DOMParser","parseFromString","elementName","attributeList","allowedAttributes","innerHTML","content","extraClass","html","sanitize","sanitizeFn","template","DefaultContentType","entry","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","text","_setContent","arg","templateElement","_putElementInTemplate","textContent","DISALLOWED_ATTRIBUTES","CLASS_NAME_MODAL","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","container","customClass","delay","fallbackPlacements","title","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","disable","toggleEnabled","click","_leave","_enter","_hideModalHandler","_disposePopper","_isWithContent","isInTheDom","ownerDocument","_getTipElement","_isWithActiveTrigger","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","setContent","_initializeOnDelegatedTarget","_getDelegateConfig","attachment","phase","state","triggers","eventIn","eventOut","_setTimeout","timeout","dataAttributes","dataAttribute","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","EVENT_ACTIVATE","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","rootMargin","smoothScroll","threshold","ScrollSpy","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","section","observe","observableSection","hash","height","offsetTop","scrollTo","top","behavior","IntersectionObserver","_observerCallback","targetElement","_process","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","_activateParents","listGroup","item","activeNodes","node","spy","CLASS_DROPDOWN","SELECTOR_DROPDOWN_MENU","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","_setInitialAttributes","_getChildren","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","_deactivate","_activate","relatedElem","_toggleDropDown","nextActiveElement","preventScroll","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","open","EVENT_MOUSEOVER","EVENT_MOUSEOUT","CLASS_NAME_HIDE","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting"],"sources":["../../js/src/util/index.js","../../js/src/dom/event-handler.js","../../js/src/dom/data.js","../../js/src/dom/manipulator.js","../../js/src/util/config.js","../../js/src/base-component.js","../../js/src/dom/selector-engine.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/util/swipe.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/util/template-factory.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n  if (selector && window.CSS && window.CSS.escape) {\n    // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n    selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n  }\n\n  return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n  if (object === null || object === undefined) {\n    return `${object}`\n  }\n\n  return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\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 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 && !floatTransitionDelay) {\n    return 0\n  }\n\n  // If multiple durations are defined, take the first\n  transitionDuration = transitionDuration.split(',')[0]\n  transitionDelay = transitionDelay.split(',')[0]\n\n  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n  element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n  if (!object || typeof object !== 'object') {\n    return false\n  }\n\n  if (typeof object.jquery !== 'undefined') {\n    object = object[0]\n  }\n\n  return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n  // it's a jQuery object or a node element\n  if (isElement(object)) {\n    return object.jquery ? object[0] : object\n  }\n\n  if (typeof object === 'string' && object.length > 0) {\n    return document.querySelector(parseSelector(object))\n  }\n\n  return null\n}\n\nconst isVisible = element => {\n  if (!isElement(element) || element.getClientRects().length === 0) {\n    return false\n  }\n\n  const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n  // Handle `details` element as its content may falsie appear visible when it is closed\n  const closedDetails = element.closest('details:not([open])')\n\n  if (!closedDetails) {\n    return elementIsVisible\n  }\n\n  if (closedDetails !== element) {\n    const summary = element.closest('summary')\n    if (summary && summary.parentNode !== closedDetails) {\n      return false\n    }\n\n    if (summary === null) {\n      return false\n    }\n  }\n\n  return elementIsVisible\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  element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n  if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n    return window.jQuery\n  }\n\n  return 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        for (const callback of DOMContentLoadedCallbacks) {\n          callback()\n        }\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 = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n  return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\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 * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n  const listLength = list.length\n  let index = list.indexOf(activeElement)\n\n  // if the element does not exist in the list return an element\n  // depending on the direction and if cycle is allowed\n  if (index === -1) {\n    return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n  }\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  defineJQueryPlugin,\n  execute,\n  executeAfterTransition,\n  findShadowRoot,\n  getElement,\n  getjQuery,\n  getNextActiveElement,\n  getTransitionDurationFromElement,\n  getUID,\n  isDisabled,\n  isElement,\n  isRTL,\n  isVisible,\n  noop,\n  onDOMContentLoaded,\n  parseSelector,\n  reflow,\n  triggerTransitionEnd,\n  toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\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}\n\nconst nativeEvents = new Set([\n  'click',\n  'dblclick',\n  'mouseup',\n  'mousedown',\n  'contextmenu',\n  'mousewheel',\n  'DOMMouseScroll',\n  'mouseover',\n  'mouseout',\n  'mousemove',\n  'selectstart',\n  'selectend',\n  'keydown',\n  'keypress',\n  'keyup',\n  'orientationchange',\n  'touchstart',\n  'touchmove',\n  'touchend',\n  'touchcancel',\n  'pointerdown',\n  'pointermove',\n  'pointerup',\n  'pointerleave',\n  'pointercancel',\n  'gesturestart',\n  'gesturechange',\n  'gestureend',\n  'focus',\n  'blur',\n  'change',\n  'reset',\n  'select',\n  'submit',\n  'focusin',\n  'focusout',\n  'load',\n  'unload',\n  'beforeunload',\n  'resize',\n  'move',\n  'DOMContentLoaded',\n  'readystatechange',\n  'error',\n  'abort',\n  'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n  return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n  const uid = makeEventUid(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    hydrateObj(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 (const domElement of domElements) {\n        if (domElement !== target) {\n          continue\n        }\n\n        hydrateObj(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\nfunction findHandler(events, callable, delegationSelector = null) {\n  return Object.values(events)\n    .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n  const isDelegated = typeof handler === 'string'\n  // todo: tooltip passes `false` instead of selector, so we need to check\n  const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n  let typeEvent = getTypeEvent(originalTypeEvent)\n\n  if (!nativeEvents.has(typeEvent)) {\n    typeEvent = originalTypeEvent\n  }\n\n  return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n  if (typeof originalTypeEvent !== 'string' || !element) {\n    return\n  }\n\n  let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n  // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n  // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n  if (originalTypeEvent in customEvents) {\n    const wrapFunction = 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    callable = wrapFunction(callable)\n  }\n\n  const events = getElementEvents(element)\n  const handlers = events[typeEvent] || (events[typeEvent] = {})\n  const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n  if (previousFunction) {\n    previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n    return\n  }\n\n  const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n  const fn = isDelegated ?\n    bootstrapDelegationHandler(element, handler, callable) :\n    bootstrapHandler(element, callable)\n\n  fn.delegationSelector = isDelegated ? handler : null\n  fn.callable = callable\n  fn.oneOff = oneOff\n  fn.uidEvent = uid\n  handlers[uid] = fn\n\n  element.addEventListener(typeEvent, fn, isDelegated)\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  for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n    if (handlerKey.includes(namespace)) {\n      removeHandler(element, events, typeEvent, event.callable, 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, delegationFunction) {\n    addHandler(element, event, handler, delegationFunction, false)\n  },\n\n  one(element, event, handler, delegationFunction) {\n    addHandler(element, event, handler, delegationFunction, true)\n  },\n\n  off(element, originalTypeEvent, handler, delegationFunction) {\n    if (typeof originalTypeEvent !== 'string' || !element) {\n      return\n    }\n\n    const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n    const inNamespace = typeEvent !== originalTypeEvent\n    const events = getElementEvents(element)\n    const storeElementEvent = events[typeEvent] || {}\n    const isNamespace = originalTypeEvent.startsWith('.')\n\n    if (typeof callable !== 'undefined') {\n      // Simplest case: handler is passed, remove that listener ONLY.\n      if (!Object.keys(storeElementEvent).length) {\n        return\n      }\n\n      removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n      return\n    }\n\n    if (isNamespace) {\n      for (const elementEvent of Object.keys(events)) {\n        removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n      }\n    }\n\n    for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n      const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n      if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n        removeHandler(element, events, typeEvent, event.callable, 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 = getTypeEvent(event)\n    const inNamespace = event !== typeEvent\n\n    let jQueryEvent = null\n    let bubbles = true\n    let nativeDispatch = true\n    let defaultPrevented = false\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    let evt = new Event(event, { bubbles, cancelable: true })\n    evt = hydrateObj(evt, args)\n\n    if (defaultPrevented) {\n      evt.preventDefault()\n    }\n\n    if (nativeDispatch) {\n      element.dispatchEvent(evt)\n    }\n\n    if (evt.defaultPrevented && jQueryEvent) {\n      jQueryEvent.preventDefault()\n    }\n\n    return evt\n  }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n  for (const [key, value] of Object.entries(meta)) {\n    try {\n      obj[key] = value\n    } catch {\n      Object.defineProperty(obj, key, {\n        configurable: true,\n        get() {\n          return value\n        }\n      })\n    }\n  }\n\n  return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\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.3.0-alpha1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n  if (value === 'true') {\n    return true\n  }\n\n  if (value === 'false') {\n    return false\n  }\n\n  if (value === Number(value).toString()) {\n    return Number(value)\n  }\n\n  if (value === '' || value === 'null') {\n    return null\n  }\n\n  if (typeof value !== 'string') {\n    return value\n  }\n\n  try {\n    return JSON.parse(decodeURIComponent(value))\n  } catch {\n    return value\n  }\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    const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n    for (const key of bsKeys) {\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\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isElement, toType } from './index.js'\nimport Manipulator from '../dom/manipulator.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n  // Getters\n  static get Default() {\n    return {}\n  }\n\n  static get DefaultType() {\n    return {}\n  }\n\n  static get NAME() {\n    throw new Error('You have to implement the static method \"NAME\", for each component!')\n  }\n\n  _getConfig(config) {\n    config = this._mergeConfigObj(config)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  _configAfterMerge(config) {\n    return config\n  }\n\n  _mergeConfigObj(config, element) {\n    const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n    return {\n      ...this.constructor.Default,\n      ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n      ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n      ...(typeof config === 'object' ? config : {})\n    }\n  }\n\n  _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n    for (const [property, expectedTypes] of Object.entries(configTypes)) {\n      const value = config[property]\n      const valueType = isElement(value) ? 'element' : toType(value)\n\n      if (!new RegExp(expectedTypes).test(valueType)) {\n        throw new TypeError(\n          `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n        )\n      }\n    }\n  }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.0-alpha1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n  constructor(element, config) {\n    super()\n\n    element = getElement(element)\n    if (!element) {\n      return\n    }\n\n    this._element = element\n    this._config = this._getConfig(config)\n\n    Data.set(this._element, this.constructor.DATA_KEY, this)\n  }\n\n  // Public\n  dispose() {\n    Data.remove(this._element, this.constructor.DATA_KEY)\n    EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n    for (const propertyName of Object.getOwnPropertyNames(this)) {\n      this[propertyName] = null\n    }\n  }\n\n  _queueCallback(callback, element, isAnimated = true) {\n    executeAfterTransition(callback, element, isAnimated)\n  }\n\n  _getConfig(config) {\n    config = this._mergeConfigObj(config, this._element)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  // Static\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 DATA_KEY() {\n    return `bs.${this.NAME}`\n  }\n\n  static get EVENT_KEY() {\n    return `.${this.DATA_KEY}`\n  }\n\n  static eventName(name) {\n    return `${name}${this.EVENT_KEY}`\n  }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n  let selector = element.getAttribute('data-bs-target')\n\n  if (!selector || selector === '#') {\n    let hrefAttribute = 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 (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n      return null\n    }\n\n    // Just in case some CMS puts out a full URL with the anchor appended\n    if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n      hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n    }\n\n    selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n  }\n\n  return parseSelector(selector)\n}\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).filter(child => child.matches(selector))\n  },\n\n  parents(element, selector) {\n    const parents = []\n    let ancestor = element.parentNode.closest(selector)\n\n    while (ancestor) {\n      parents.push(ancestor)\n      ancestor = ancestor.parentNode.closest(selector)\n    }\n\n    return parents\n  },\n\n  prev(element, selector) {\n    let previous = element.previousElementSibling\n\n    while (previous) {\n      if (previous.matches(selector)) {\n        return [previous]\n      }\n\n      previous = previous.previousElementSibling\n    }\n\n    return []\n  },\n  // TODO: this is now unused; remove later along with prev()\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  getSelectorFromElement(element) {\n    const selector = getSelector(element)\n\n    if (selector) {\n      return SelectorEngine.findOne(selector) ? selector : null\n    }\n\n    return null\n  },\n\n  getElementFromSelector(element) {\n    const selector = getSelector(element)\n\n    return selector ? SelectorEngine.findOne(selector) : null\n  },\n\n  getMultipleElementsFromSelector(element) {\n    const selector = getSelector(element)\n\n    return selector ? SelectorEngine.find(selector) : []\n  }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): 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.js'\nimport { isDisabled } from './index.js'\nimport SelectorEngine from '../dom/selector-engine.js'\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 = SelectorEngine.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.3.0-alpha1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport BaseComponent from './base-component.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\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 * Class definition\n */\n\nclass Alert extends BaseComponent {\n  // Getters\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\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  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 * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * Constants\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'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n  // Getters\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\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  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 * Data API implementation\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 * jQuery\n */\n\ndefineJQueryPlugin(Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Config from './config.js'\nimport EventHandler from '../dom/event-handler.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\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 POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n  endCallback: null,\n  leftCallback: null,\n  rightCallback: null\n}\n\nconst DefaultType = {\n  endCallback: '(function|null)',\n  leftCallback: '(function|null)',\n  rightCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n  constructor(element, config) {\n    super()\n    this._element = element\n\n    if (!element || !Swipe.isSupported()) {\n      return\n    }\n\n    this._config = this._getConfig(config)\n    this._deltaX = 0\n    this._supportPointerEvents = Boolean(window.PointerEvent)\n    this._initEvents()\n  }\n\n  // Getters\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  dispose() {\n    EventHandler.off(this._element, EVENT_KEY)\n  }\n\n  // Private\n  _start(event) {\n    if (!this._supportPointerEvents) {\n      this._deltaX = event.touches[0].clientX\n\n      return\n    }\n\n    if (this._eventIsPointerPenTouch(event)) {\n      this._deltaX = event.clientX\n    }\n  }\n\n  _end(event) {\n    if (this._eventIsPointerPenTouch(event)) {\n      this._deltaX = event.clientX - this._deltaX\n    }\n\n    this._handleSwipe()\n    execute(this._config.endCallback)\n  }\n\n  _move(event) {\n    this._deltaX = event.touches && event.touches.length > 1 ?\n      0 :\n      event.touches[0].clientX - this._deltaX\n  }\n\n  _handleSwipe() {\n    const absDeltaX = Math.abs(this._deltaX)\n\n    if (absDeltaX <= SWIPE_THRESHOLD) {\n      return\n    }\n\n    const direction = absDeltaX / this._deltaX\n\n    this._deltaX = 0\n\n    if (!direction) {\n      return\n    }\n\n    execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n  }\n\n  _initEvents() {\n    if (this._supportPointerEvents) {\n      EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n      EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n      this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n    } else {\n      EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n      EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n      EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n    }\n  }\n\n  _eventIsPointerPenTouch(event) {\n    return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n  }\n\n  // Static\n  static isSupported() {\n    return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n  }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  defineJQueryPlugin,\n  getNextActiveElement,\n  isRTL,\n  isVisible,\n  reflow,\n  triggerTransitionEnd\n} from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Swipe from './util/swipe.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * Constants\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\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_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'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n  [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n  [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n  interval: 5000,\n  keyboard: true,\n  pause: 'hover',\n  ride: false,\n  touch: true,\n  wrap: true\n}\n\nconst DefaultType = {\n  interval: '(number|boolean)', // TODO:v6 remove boolean support\n  keyboard: 'boolean',\n  pause: '(string|boolean)',\n  ride: '(boolean|string)',\n  touch: 'boolean',\n  wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._interval = null\n    this._activeElement = null\n    this._isSliding = false\n    this.touchTimeout = null\n    this._swipeHelper = null\n\n    this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n    this._addEventListeners()\n\n    if (this._config.ride === CLASS_NAME_CAROUSEL) {\n      this.cycle()\n    }\n  }\n\n  // Getters\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  next() {\n    this._slide(ORDER_NEXT)\n  }\n\n  nextWhenVisible() {\n    // FIXME TODO use `document.visibilityState`\n    // Don't call next when the page isn't visible\n    // or the carousel or its parent isn't visible\n    if (!document.hidden && isVisible(this._element)) {\n      this.next()\n    }\n  }\n\n  prev() {\n    this._slide(ORDER_PREV)\n  }\n\n  pause() {\n    if (this._isSliding) {\n      triggerTransitionEnd(this._element)\n    }\n\n    this._clearInterval()\n  }\n\n  cycle() {\n    this._clearInterval()\n    this._updateInterval()\n\n    this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n  }\n\n  _maybeEnableCycle() {\n    if (!this._config.ride) {\n      return\n    }\n\n    if (this._isSliding) {\n      EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n      return\n    }\n\n    this.cycle()\n  }\n\n  to(index) {\n    const items = this._getItems()\n    if (index > 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    const activeIndex = this._getItemIndex(this._getActive())\n    if (activeIndex === index) {\n      return\n    }\n\n    const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n    this._slide(order, items[index])\n  }\n\n  dispose() {\n    if (this._swipeHelper) {\n      this._swipeHelper.dispose()\n    }\n\n    super.dispose()\n  }\n\n  // Private\n  _configAfterMerge(config) {\n    config.defaultInterval = config.interval\n    return config\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, () => this.pause())\n      EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n    }\n\n    if (this._config.touch && Swipe.isSupported()) {\n      this._addTouchEventListeners()\n    }\n  }\n\n  _addTouchEventListeners() {\n    for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n      EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n    }\n\n    const endCallBack = () => {\n      if (this._config.pause !== 'hover') {\n        return\n      }\n\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(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n    }\n\n    const swipeConfig = {\n      leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n      rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n      endCallback: endCallBack\n    }\n\n    this._swipeHelper = new Swipe(this._element, swipeConfig)\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(this._directionToOrder(direction))\n    }\n  }\n\n  _getItemIndex(element) {\n    return this._getItems().indexOf(element)\n  }\n\n  _setActiveIndicatorElement(index) {\n    if (!this._indicatorsElement) {\n      return\n    }\n\n    const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n    activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n    activeIndicator.removeAttribute('aria-current')\n\n    const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n    if (newActiveIndicator) {\n      newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n      newActiveIndicator.setAttribute('aria-current', 'true')\n    }\n  }\n\n  _updateInterval() {\n    const element = this._activeElement || this._getActive()\n\n    if (!element) {\n      return\n    }\n\n    const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n    this._config.interval = elementInterval || this._config.defaultInterval\n  }\n\n  _slide(order, element = null) {\n    if (this._isSliding) {\n      return\n    }\n\n    const activeElement = this._getActive()\n    const isNext = order === ORDER_NEXT\n    const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n    if (nextElement === activeElement) {\n      return\n    }\n\n    const nextElementIndex = this._getItemIndex(nextElement)\n\n    const triggerEvent = eventName => {\n      return EventHandler.trigger(this._element, eventName, {\n        relatedTarget: nextElement,\n        direction: this._orderToDirection(order),\n        from: this._getItemIndex(activeElement),\n        to: nextElementIndex\n      })\n    }\n\n    const slideEvent = triggerEvent(EVENT_SLIDE)\n\n    if (slideEvent.defaultPrevented) {\n      return\n    }\n\n    if (!activeElement || !nextElement) {\n      // Some weirdness is happening, so we bail\n      // todo: change tests that use empty divs to avoid this check\n      return\n    }\n\n    const isCycling = Boolean(this._interval)\n    this.pause()\n\n    this._isSliding = true\n\n    this._setActiveIndicatorElement(nextElementIndex)\n    this._activeElement = nextElement\n\n    const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n    const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\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, orderClassName)\n      nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n      activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n      this._isSliding = false\n\n      triggerEvent(EVENT_SLID)\n    }\n\n    this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n    if (isCycling) {\n      this.cycle()\n    }\n  }\n\n  _isAnimated() {\n    return this._element.classList.contains(CLASS_NAME_SLIDE)\n  }\n\n  _getActive() {\n    return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n  }\n\n  _getItems() {\n    return SelectorEngine.find(SELECTOR_ITEM, this._element)\n  }\n\n  _clearInterval() {\n    if (this._interval) {\n      clearInterval(this._interval)\n      this._interval = null\n    }\n  }\n\n  _directionToOrder(direction) {\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 (isRTL()) {\n      return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n    }\n\n    return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Carousel.getOrCreateInstance(this, config)\n\n      if (typeof config === 'number') {\n        data.to(config)\n        return\n      }\n\n      if (typeof config === 'string') {\n        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\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\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n  const target = SelectorEngine.getElementFromSelector(this)\n\n  if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n    return\n  }\n\n  event.preventDefault()\n\n  const carousel = Carousel.getOrCreateInstance(target)\n  const slideIndex = this.getAttribute('data-bs-slide-to')\n\n  if (slideIndex) {\n    carousel.to(slideIndex)\n    carousel._maybeEnableCycle()\n    return\n  }\n\n  if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n    carousel.next()\n    carousel._maybeEnableCycle()\n    return\n  }\n\n  carousel.prev()\n  carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n  for (const carousel of carousels) {\n    Carousel.getOrCreateInstance(carousel)\n  }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  defineJQueryPlugin,\n  getElement,\n  reflow\n} from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\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\nconst Default = {\n  parent: null,\n  toggle: true\n}\n\nconst DefaultType = {\n  parent: '(null|element)',\n  toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._isTransitioning = false\n    this._triggerArray = []\n\n    const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n    for (const elem of toggleList) {\n      const selector = SelectorEngine.getSelectorFromElement(elem)\n      const filterElement = SelectorEngine.find(selector)\n        .filter(foundElement => foundElement === this._element)\n\n      if (selector !== null && filterElement.length) {\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  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  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 activeChildren = []\n\n    // find active children\n    if (this._config.parent) {\n      activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n        .filter(element => element !== this._element)\n        .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n    }\n\n    if (activeChildren.length && activeChildren[0]._isTransitioning) {\n      return\n    }\n\n    const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n    if (startEvent.defaultPrevented) {\n      return\n    }\n\n    for (const activeInstance of activeChildren) {\n      activeInstance.hide()\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    for (const trigger of this._triggerArray) {\n      const element = SelectorEngine.getElementFromSelector(trigger)\n\n      if (element && !this._isShown(element)) {\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  _configAfterMerge(config) {\n    config.toggle = Boolean(config.toggle) // Coerce string values\n    config.parent = getElement(config.parent)\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 = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n    for (const element of children) {\n      const selected = SelectorEngine.getElementFromSelector(element)\n\n      if (selected) {\n        this._addAriaAndCollapsedClass([element], this._isShown(selected))\n      }\n    }\n  }\n\n  _getFirstLevelChildren(selector) {\n    const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n    // remove children if greater depth\n    return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n  }\n\n  _addAriaAndCollapsedClass(triggerArray, isOpen) {\n    if (!triggerArray.length) {\n      return\n    }\n\n    for (const element of triggerArray) {\n      element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n      element.setAttribute('aria-expanded', isOpen)\n    }\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    const _config = {}\n    if (typeof config === 'string' && /show|hide/.test(config)) {\n      _config.toggle = false\n    }\n\n    return this.each(function () {\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 * Data API implementation\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 && event.delegateTarget.tagName === 'A')) {\n    event.preventDefault()\n  }\n\n  for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n    Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n  }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse)\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport {\n  defineJQueryPlugin,\n  execute,\n  getElement,\n  getNextActiveElement,\n  isDisabled,\n  isElement,\n  isRTL,\n  isVisible,\n  noop\n} from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * Constants\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 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 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}`\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_DROPUP_CENTER = 'dropup-center'\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)'\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR = '.navbar'\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' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\nconst PLACEMENT_TOPCENTER = 'top'\nconst PLACEMENT_BOTTOMCENTER = 'bottom'\n\nconst Default = {\n  autoClose: true,\n  boundary: 'clippingParents',\n  display: 'dynamic',\n  offset: [0, 2],\n  popperConfig: null,\n  reference: 'toggle'\n}\n\nconst DefaultType = {\n  autoClose: '(boolean|string)',\n  boundary: '(string|element)',\n  display: 'string',\n  offset: '(array|string|function)',\n  popperConfig: '(null|object|function)',\n  reference: '(string|element|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._popper = null\n    this._parent = this._element.parentNode // dropdown wrapper\n    // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n    this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n      SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n      SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n    this._inNavbar = this._detectNavbar()\n  }\n\n  // Getters\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  toggle() {\n    return this._isShown() ? this.hide() : this.show()\n  }\n\n  show() {\n    if (isDisabled(this._element) || this._isShown()) {\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    this._createPopper()\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 && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n      for (const element of [].concat(...document.body.children)) {\n        EventHandler.on(element, 'mouseover', noop)\n      }\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()) {\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  _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      for (const element of [].concat(...document.body.children)) {\n        EventHandler.off(element, 'mouseover', noop)\n      }\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 = super._getConfig(config)\n\n    if (typeof config.reference === '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() {\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 = this._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    this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n  }\n\n  _isShown() {\n    return this._menu.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  _getPlacement() {\n    const parentDropdown = this._parent\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    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n      return PLACEMENT_TOPCENTER\n    }\n\n    if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n      return PLACEMENT_BOTTOMCENTER\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      return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n    }\n\n    return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n  }\n\n  _detectNavbar() {\n    return this._element.closest(SELECTOR_NAVBAR) !== null\n  }\n\n  _getOffset() {\n    const { offset } = this._config\n\n    if (typeof offset === 'string') {\n      return offset.split(',').map(value => Number.parseInt(value, 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 or Dropdown is in Navbar\n    if (this._inNavbar || this._config.display === 'static') {\n      Manipulator.setDataAttribute(this._menu, 'popper', 'static') // todo:v6 remove\n      defaultBsPopperConfig.modifiers = [{\n        name: 'applyStyles',\n        enabled: false\n      }]\n    }\n\n    return {\n      ...defaultBsPopperConfig,\n      ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n    }\n  }\n\n  _selectMenuItem({ key, target }) {\n    const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element))\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  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 method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n\n  static clearMenus(event) {\n    if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n      return\n    }\n\n    const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN)\n\n    for (const toggle of openToggles) {\n      const context = Dropdown.getInstance(toggle)\n      if (!context || context._config.autoClose === false) {\n        continue\n      }\n\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      const relatedTarget = { relatedTarget: context._element }\n\n      if (event.type === 'click') {\n        relatedTarget.clickEvent = event\n      }\n\n      context._completeHide(relatedTarget)\n    }\n  }\n\n  static dataApiKeydownHandler(event) {\n    // If not an UP | DOWN | ESCAPE key => not a dropdown command\n    // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n    const isInput = /input|textarea/i.test(event.target.tagName)\n    const isEscapeEvent = event.key === ESCAPE_KEY\n    const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n\n    if (!isUpOrDownEvent && !isEscapeEvent) {\n      return\n    }\n\n    if (isInput && !isEscapeEvent) {\n      return\n    }\n\n    event.preventDefault()\n\n    // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n    const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n      this :\n      (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n        SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n        SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n    const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n    if (isUpOrDownEvent) {\n      event.stopPropagation()\n      instance.show()\n      instance._selectMenuItem(event)\n      return\n    }\n\n    if (instance._isShown()) { // else is escape and we check if it is shown\n      event.stopPropagation()\n      instance.hide()\n      getToggleButton.focus()\n    }\n  }\n}\n\n/**\n * Data API implementation\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 * jQuery\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\nconst PROPERTY_PADDING = 'padding-right'\nconst PROPERTY_MARGIN = 'margin-right'\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n  constructor() {\n    this._element = document.body\n  }\n\n  // Public\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, PROPERTY_PADDING, 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, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n    this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\n  }\n\n  reset() {\n    this._resetElementAttributes(this._element, 'overflow')\n    this._resetElementAttributes(this._element, PROPERTY_PADDING)\n    this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\n    this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\n  }\n\n  isOverflowing() {\n    return this.getWidth() > 0\n  }\n\n  // Private\n  _disableOverFlow() {\n    this._saveInitialAttribute(this._element, 'overflow')\n    this._element.style.overflow = 'hidden'\n  }\n\n  _setElementAttributes(selector, styleProperty, 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, styleProperty)\n      const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\n      element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\n    }\n\n    this._applyManipulationCallback(selector, manipulationCallBack)\n  }\n\n  _saveInitialAttribute(element, styleProperty) {\n    const actualValue = element.style.getPropertyValue(styleProperty)\n    if (actualValue) {\n      Manipulator.setDataAttribute(element, styleProperty, actualValue)\n    }\n  }\n\n  _resetElementAttributes(selector, styleProperty) {\n    const manipulationCallBack = element => {\n      const value = Manipulator.getDataAttribute(element, styleProperty)\n      // We only want to remove the property if the value is `null`; the value can also be zero\n      if (value === null) {\n        element.style.removeProperty(styleProperty)\n        return\n      }\n\n      Manipulator.removeDataAttribute(element, styleProperty)\n      element.style.setProperty(styleProperty, value)\n    }\n\n    this._applyManipulationCallback(selector, manipulationCallBack)\n  }\n\n  _applyManipulationCallback(selector, callBack) {\n    if (isElement(selector)) {\n      callBack(selector)\n      return\n    }\n\n    for (const sel of SelectorEngine.find(selector, this._element)) {\n      callBack(sel)\n    }\n  }\n}\n\nexport default ScrollBarHelper\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport { execute, executeAfterTransition, getElement, reflow } from './index.js'\nimport Config from './config.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nconst Default = {\n  className: 'modal-backdrop',\n  clickCallback: null,\n  isAnimated: false,\n  isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n  rootElement: 'body' // give the choice to place backdrop under different elements\n}\n\nconst DefaultType = {\n  className: 'string',\n  clickCallback: '(function|null)',\n  isAnimated: 'boolean',\n  isVisible: 'boolean',\n  rootElement: '(element|string)'\n}\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n  constructor(config) {\n    super()\n    this._config = this._getConfig(config)\n    this._isAppended = false\n    this._element = null\n  }\n\n  // Getters\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  show(callback) {\n    if (!this._config.isVisible) {\n      execute(callback)\n      return\n    }\n\n    this._append()\n\n    const element = this._getElement()\n    if (this._config.isAnimated) {\n      reflow(element)\n    }\n\n    element.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  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  // Private\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  _configAfterMerge(config) {\n    // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n    config.rootElement = getElement(config.rootElement)\n    return config\n  }\n\n  _append() {\n    if (this._isAppended) {\n      return\n    }\n\n    const element = this._getElement()\n    this._config.rootElement.append(element)\n\n    EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n      execute(this._config.clickCallback)\n    })\n\n    this._isAppended = true\n  }\n\n  _emulateAnimation(callback) {\n    executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n  }\n}\n\nexport default Backdrop\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\n\n/**\n * Constants\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\nconst Default = {\n  autofocus: true,\n  trapElement: null // The element to trap focus inside of\n}\n\nconst DefaultType = {\n  autofocus: 'boolean',\n  trapElement: 'element'\n}\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n  constructor(config) {\n    super()\n    this._config = this._getConfig(config)\n    this._isActive = false\n    this._lastTabNavDirection = null\n  }\n\n  // Getters\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  activate() {\n    if (this._isActive) {\n      return\n    }\n\n    if (this._config.autofocus) {\n      this._config.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  _handleFocusin(event) {\n    const { trapElement } = this._config\n\n    if (event.target === document || event.target === trapElement || trapElement.contains(event.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\nexport default FocusTrap\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, isRTL, isVisible, reflow } from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport ScrollBarHelper from './util/scrollbar.js'\nimport BaseComponent from './base-component.js'\nimport Backdrop from './util/backdrop.js'\nimport FocusTrap from './util/focustrap.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\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_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.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_STATIC = '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\nconst Default = {\n  backdrop: true,\n  focus: true,\n  keyboard: true\n}\n\nconst DefaultType = {\n  backdrop: '(boolean|string)',\n  focus: 'boolean',\n  keyboard: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\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._isTransitioning = false\n    this._scrollBar = new ScrollBarHelper()\n\n    this._addEventListeners()\n  }\n\n  // Getters\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  toggle(relatedTarget) {\n    return this._isShown ? this.hide() : this.show(relatedTarget)\n  }\n\n  show(relatedTarget) {\n    if (this._isShown || this._isTransitioning) {\n      return\n    }\n\n    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    this._isTransitioning = true\n\n    this._scrollBar.hide()\n\n    document.body.classList.add(CLASS_NAME_OPEN)\n\n    this._adjustDialog()\n\n    this._backdrop.show(() => 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    this._isTransitioning = true\n    this._focustrap.deactivate()\n\n    this._element.classList.remove(CLASS_NAME_SHOW)\n\n    this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())\n  }\n\n  dispose() {\n    for (const htmlElement of [window, this._dialog]) {\n      EventHandler.off(htmlElement, EVENT_KEY)\n    }\n\n    this._backdrop.dispose()\n    this._focustrap.deactivate()\n    super.dispose()\n  }\n\n  handleUpdate() {\n    this._adjustDialog()\n  }\n\n  // Private\n  _initializeBackDrop() {\n    return new Backdrop({\n      isVisible: Boolean(this._config.backdrop), // 'static' 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  _showElement(relatedTarget) {\n    // try to append dynamic modal\n    if (!document.body.contains(this._element)) {\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    const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n    if (modalBody) {\n      modalBody.scrollTop = 0\n    }\n\n    reflow(this._element)\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, this._isAnimated())\n  }\n\n  _addEventListeners() {\n    EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n      if (event.key !== ESCAPE_KEY) {\n        return\n      }\n\n      if (this._config.keyboard) {\n        event.preventDefault()\n        this.hide()\n        return\n      }\n\n      this._triggerBackdropTransition()\n    })\n\n    EventHandler.on(window, EVENT_RESIZE, () => {\n      if (this._isShown && !this._isTransitioning) {\n        this._adjustDialog()\n      }\n    })\n\n    EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n      // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n      EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n        if (this._element !== event.target || this._element !== event2.target) {\n          return\n        }\n\n        if (this._config.backdrop === 'static') {\n          this._triggerBackdropTransition()\n          return\n        }\n\n        if (this._config.backdrop) {\n          this.hide()\n        }\n      })\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\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  _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 isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n    const initialOverflowY = this._element.style.overflowY\n    // return if the following background transition hasn't yet completed\n    if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n      return\n    }\n\n    if (!isModalOverflowing) {\n      this._element.style.overflowY = 'hidden'\n    }\n\n    this._element.classList.add(CLASS_NAME_STATIC)\n    this._queueCallback(() => {\n      this._element.classList.remove(CLASS_NAME_STATIC)\n      this._queueCallback(() => {\n        this._element.style.overflowY = initialOverflowY\n      }, this._dialog)\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) {\n      const property = isRTL() ? 'paddingLeft' : 'paddingRight'\n      this._element.style[property] = `${scrollbarWidth}px`\n    }\n\n    if (!isBodyOverflowing && isModalOverflowing) {\n      const property = isRTL() ? 'paddingRight' : 'paddingLeft'\n      this._element.style[property] = `${scrollbarWidth}px`\n    }\n  }\n\n  _resetAdjustments() {\n    this._element.style.paddingLeft = ''\n    this._element.style.paddingRight = ''\n  }\n\n  // Static\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 * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  const target = SelectorEngine.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 modal toggler while another one is open\n  const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n  if (alreadyOpen) {\n    Modal.getInstance(alreadyOpen).hide()\n  }\n\n  const data = Modal.getOrCreateInstance(target)\n\n  data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  defineJQueryPlugin,\n  isDisabled,\n  isVisible\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.js'\nimport EventHandler from './dom/event-handler.js'\nimport BaseComponent from './base-component.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport FocusTrap from './util/focustrap.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\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 CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\nconst CLASS_NAME_HIDING = 'hiding'\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_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${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\nconst Default = {\n  backdrop: true,\n  keyboard: true,\n  scroll: false\n}\n\nconst DefaultType = {\n  backdrop: '(boolean|string)',\n  keyboard: 'boolean',\n  scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._isShown = false\n    this._backdrop = this._initializeBackDrop()\n    this._focustrap = this._initializeFocusTrap()\n    this._addEventListeners()\n  }\n\n  // Getters\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  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._backdrop.show()\n\n    if (!this._config.scroll) {\n      new ScrollBarHelper().hide()\n    }\n\n    this._element.setAttribute('aria-modal', true)\n    this._element.setAttribute('role', 'dialog')\n    this._element.classList.add(CLASS_NAME_SHOWING)\n\n    const completeCallBack = () => {\n      if (!this._config.scroll || this._config.backdrop) {\n        this._focustrap.activate()\n      }\n\n      this._element.classList.add(CLASS_NAME_SHOW)\n      this._element.classList.remove(CLASS_NAME_SHOWING)\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.add(CLASS_NAME_HIDING)\n    this._backdrop.hide()\n\n    const completeCallback = () => {\n      this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING)\n      this._element.removeAttribute('aria-modal')\n      this._element.removeAttribute('role')\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  _initializeBackDrop() {\n    const clickCallback = () => {\n      if (this._config.backdrop === 'static') {\n        EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n        return\n      }\n\n      this.hide()\n    }\n\n    // 'static' option will be translated to true, and booleans will keep their value\n    const isVisible = Boolean(this._config.backdrop)\n\n    return new Backdrop({\n      className: CLASS_NAME_BACKDROP,\n      isVisible,\n      isAnimated: true,\n      rootElement: this._element.parentNode,\n      clickCallback: isVisible ? clickCallback : null\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 (event.key !== ESCAPE_KEY) {\n        return\n      }\n\n      if (!this._config.keyboard) {\n        EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n        return\n      }\n\n      this.hide()\n    })\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Offcanvas.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config](this)\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  const target = SelectorEngine.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 another is open\n  const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n  if (alreadyOpen && alreadyOpen !== target) {\n    Offcanvas.getInstance(alreadyOpen).hide()\n  }\n\n  const data = Offcanvas.getOrCreateInstance(target)\n  data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n    Offcanvas.getOrCreateInstance(selector).show()\n  }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n  for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n    if (getComputedStyle(element).position !== 'fixed') {\n      Offcanvas.getOrCreateInstance(element).hide()\n    }\n  }\n})\n\nenableDismissTrigger(Offcanvas)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): 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 * Shout-out 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 * Shout-out 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  // Check if a regular expression validates the attribute.\n  return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n    .some(regex => regex.test(attributeName))\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  sub: [],\n  sup: [],\n  strong: [],\n  u: [],\n  ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n  if (!unsafeHtml.length) {\n    return unsafeHtml\n  }\n\n  if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n    return sanitizeFunction(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 (const element of elements) {\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    for (const attribute of attributeList) {\n      if (!allowedAttribute(attribute, allowedAttributes)) {\n        element.removeAttribute(attribute.nodeName)\n      }\n    }\n  }\n\n  return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n  allowList: DefaultAllowlist,\n  content: {}, // { selector : text ,  selector2 : text2 , }\n  extraClass: '',\n  html: false,\n  sanitize: true,\n  sanitizeFn: null,\n  template: '<div></div>'\n}\n\nconst DefaultType = {\n  allowList: 'object',\n  content: 'object',\n  extraClass: '(string|function)',\n  html: 'boolean',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  template: 'string'\n}\n\nconst DefaultContentType = {\n  entry: '(string|element|function|null)',\n  selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n  constructor(config) {\n    super()\n    this._config = this._getConfig(config)\n  }\n\n  // Getters\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  getContent() {\n    return Object.values(this._config.content)\n      .map(config => this._resolvePossibleFunction(config))\n      .filter(Boolean)\n  }\n\n  hasContent() {\n    return this.getContent().length > 0\n  }\n\n  changeContent(content) {\n    this._checkContent(content)\n    this._config.content = { ...this._config.content, ...content }\n    return this\n  }\n\n  toHtml() {\n    const templateWrapper = document.createElement('div')\n    templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n    for (const [selector, text] of Object.entries(this._config.content)) {\n      this._setContent(templateWrapper, text, selector)\n    }\n\n    const template = templateWrapper.children[0]\n    const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n    if (extraClass) {\n      template.classList.add(...extraClass.split(' '))\n    }\n\n    return template\n  }\n\n  // Private\n  _typeCheckConfig(config) {\n    super._typeCheckConfig(config)\n    this._checkContent(config.content)\n  }\n\n  _checkContent(arg) {\n    for (const [selector, content] of Object.entries(arg)) {\n      super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n    }\n  }\n\n  _setContent(template, content, selector) {\n    const templateElement = SelectorEngine.findOne(selector, template)\n\n    if (!templateElement) {\n      return\n    }\n\n    content = this._resolvePossibleFunction(content)\n\n    if (!content) {\n      templateElement.remove()\n      return\n    }\n\n    if (isElement(content)) {\n      this._putElementInTemplate(getElement(content), templateElement)\n      return\n    }\n\n    if (this._config.html) {\n      templateElement.innerHTML = this._maybeSanitize(content)\n      return\n    }\n\n    templateElement.textContent = content\n  }\n\n  _maybeSanitize(arg) {\n    return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n  }\n\n  _resolvePossibleFunction(arg) {\n    return execute(arg, [this])\n  }\n\n  _putElementInTemplate(element, templateElement) {\n    if (this._config.html) {\n      templateElement.innerHTML = ''\n      templateElement.append(element)\n      return\n    }\n\n    templateElement.textContent = element.textContent\n  }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport { defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop } from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport BaseComponent from './base-component.js'\nimport TemplateFactory from './util/template-factory.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\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\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\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  allowList: DefaultAllowlist,\n  animation: true,\n  boundary: 'clippingParents',\n  container: false,\n  customClass: '',\n  delay: 0,\n  fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n  html: false,\n  offset: [0, 0],\n  placement: 'top',\n  popperConfig: null,\n  sanitize: true,\n  sanitizeFn: null,\n  selector: false,\n  template: '<div class=\"tooltip\" role=\"tooltip\">' +\n            '<div class=\"tooltip-arrow\"></div>' +\n            '<div class=\"tooltip-inner\"></div>' +\n            '</div>',\n  title: '',\n  trigger: 'hover focus'\n}\n\nconst DefaultType = {\n  allowList: 'object',\n  animation: 'boolean',\n  boundary: '(string|element)',\n  container: '(string|element|boolean)',\n  customClass: '(string|function)',\n  delay: '(number|object)',\n  fallbackPlacements: 'array',\n  html: 'boolean',\n  offset: '(array|string|function)',\n  placement: '(string|function)',\n  popperConfig: '(null|object|function)',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  selector: '(string|boolean)',\n  template: 'string',\n  title: '(string|element|function)',\n  trigger: 'string'\n}\n\n/**\n * Class definition\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, config)\n\n    // Private\n    this._isEnabled = true\n    this._timeout = 0\n    this._isHovered = null\n    this._activeTrigger = {}\n    this._popper = null\n    this._templateFactory = null\n    this._newContent = null\n\n    // Protected\n    this.tip = null\n\n    this._setListeners()\n\n    if (!this._config.selector) {\n      this._fixTitle()\n    }\n  }\n\n  // Getters\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  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() {\n    if (!this._isEnabled) {\n      return\n    }\n\n    this._activeTrigger.click = !this._activeTrigger.click\n    if (this._isShown()) {\n      this._leave()\n      return\n    }\n\n    this._enter()\n  }\n\n  dispose() {\n    clearTimeout(this._timeout)\n\n    EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n    if (this._element.getAttribute('data-bs-original-title')) {\n      this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\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.eventName(EVENT_SHOW))\n    const shadowRoot = findShadowRoot(this._element)\n    const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n    if (showEvent.defaultPrevented || !isInTheDom) {\n      return\n    }\n\n    // todo v6 remove this OR make it optional\n    this._disposePopper()\n\n    const tip = this._getTipElement()\n\n    this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n    const { container } = this._config\n\n    if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n      container.append(tip)\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n    }\n\n    this._popper = this._createPopper(tip)\n\n    tip.classList.add(CLASS_NAME_SHOW)\n\n    // If this is a touch-enabled device we add extra\n    // empty mouseover listeners to the body's immediate children;\n    // only needed because of broken event delegation on iOS\n    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n    if ('ontouchstart' in document.documentElement) {\n      for (const element of [].concat(...document.body.children)) {\n        EventHandler.on(element, 'mouseover', noop)\n      }\n    }\n\n    const complete = () => {\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n      if (this._isHovered === false) {\n        this._leave()\n      }\n\n      this._isHovered = false\n    }\n\n    this._queueCallback(complete, this.tip, this._isAnimated())\n  }\n\n  hide() {\n    if (!this._isShown()) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    const tip = this._getTipElement()\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      for (const element of [].concat(...document.body.children)) {\n        EventHandler.off(element, 'mouseover', noop)\n      }\n    }\n\n    this._activeTrigger[TRIGGER_CLICK] = false\n    this._activeTrigger[TRIGGER_FOCUS] = false\n    this._activeTrigger[TRIGGER_HOVER] = false\n    this._isHovered = null // it is a trick to support manual triggering\n\n    const complete = () => {\n      if (this._isWithActiveTrigger()) {\n        return\n      }\n\n      if (!this._isHovered) {\n        this._disposePopper()\n      }\n\n      this._element.removeAttribute('aria-describedby')\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n    }\n\n    this._queueCallback(complete, this.tip, this._isAnimated())\n  }\n\n  update() {\n    if (this._popper) {\n      this._popper.update()\n    }\n  }\n\n  // Protected\n  _isWithContent() {\n    return Boolean(this._getTitle())\n  }\n\n  _getTipElement() {\n    if (!this.tip) {\n      this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n    }\n\n    return this.tip\n  }\n\n  _createTipElement(content) {\n    const tip = this._getTemplateFactory(content).toHtml()\n\n    // todo: remove this check on v6\n    if (!tip) {\n      return null\n    }\n\n    tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n    // todo: on v6 the following can be achieved with CSS only\n    tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n    const tipId = getUID(this.constructor.NAME).toString()\n\n    tip.setAttribute('id', tipId)\n\n    if (this._isAnimated()) {\n      tip.classList.add(CLASS_NAME_FADE)\n    }\n\n    return tip\n  }\n\n  setContent(content) {\n    this._newContent = content\n    if (this._isShown()) {\n      this._disposePopper()\n      this.show()\n    }\n  }\n\n  _getTemplateFactory(content) {\n    if (this._templateFactory) {\n      this._templateFactory.changeContent(content)\n    } else {\n      this._templateFactory = new TemplateFactory({\n        ...this._config,\n        // the `content` var has to be after `this._config`\n        // to override config.content in case of popover\n        content,\n        extraClass: this._resolvePossibleFunction(this._config.customClass)\n      })\n    }\n\n    return this._templateFactory\n  }\n\n  _getContentForTemplate() {\n    return {\n      [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n    }\n  }\n\n  _getTitle() {\n    return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n  }\n\n  // Private\n  _initializeOnDelegatedTarget(event) {\n    return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n  }\n\n  _isAnimated() {\n    return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n  }\n\n  _isShown() {\n    return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  _createPopper(tip) {\n    const placement = execute(this._config.placement, [this, tip, this._element])\n    const attachment = AttachmentMap[placement.toUpperCase()]\n    return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n  }\n\n  _getOffset() {\n    const { offset } = this._config\n\n    if (typeof offset === 'string') {\n      return offset.split(',').map(value => Number.parseInt(value, 10))\n    }\n\n    if (typeof offset === 'function') {\n      return popperData => offset(popperData, this._element)\n    }\n\n    return offset\n  }\n\n  _resolvePossibleFunction(arg) {\n    return execute(arg, [this._element])\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: 'preSetPlacement',\n          enabled: true,\n          phase: 'beforeMain',\n          fn: data => {\n            // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n            // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n            this._getTipElement().setAttribute('data-popper-placement', data.state.placement)\n          }\n        }\n      ]\n    }\n\n    return {\n      ...defaultBsPopperConfig,\n      ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n    }\n  }\n\n  _setListeners() {\n    const triggers = this._config.trigger.split(' ')\n\n    for (const trigger of triggers) {\n      if (trigger === 'click') {\n        EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context.toggle()\n        })\n      } else if (trigger !== TRIGGER_MANUAL) {\n        const eventIn = trigger === TRIGGER_HOVER ?\n          this.constructor.eventName(EVENT_MOUSEENTER) :\n          this.constructor.eventName(EVENT_FOCUSIN)\n        const eventOut = trigger === TRIGGER_HOVER ?\n          this.constructor.eventName(EVENT_MOUSELEAVE) :\n          this.constructor.eventName(EVENT_FOCUSOUT)\n\n        EventHandler.on(this._element, eventIn, this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n          context._enter()\n        })\n        EventHandler.on(this._element, eventOut, this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n            context._element.contains(event.relatedTarget)\n\n          context._leave()\n        })\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\n  _fixTitle() {\n    const title = this._element.getAttribute('title')\n\n    if (!title) {\n      return\n    }\n\n    if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n      this._element.setAttribute('aria-label', title)\n    }\n\n    this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n    this._element.removeAttribute('title')\n  }\n\n  _enter() {\n    if (this._isShown() || this._isHovered) {\n      this._isHovered = true\n      return\n    }\n\n    this._isHovered = true\n\n    this._setTimeout(() => {\n      if (this._isHovered) {\n        this.show()\n      }\n    }, this._config.delay.show)\n  }\n\n  _leave() {\n    if (this._isWithActiveTrigger()) {\n      return\n    }\n\n    this._isHovered = false\n\n    this._setTimeout(() => {\n      if (!this._isHovered) {\n        this.hide()\n      }\n    }, this._config.delay.hide)\n  }\n\n  _setTimeout(handler, timeout) {\n    clearTimeout(this._timeout)\n    this._timeout = setTimeout(handler, timeout)\n  }\n\n  _isWithActiveTrigger() {\n    return Object.values(this._activeTrigger).includes(true)\n  }\n\n  _getConfig(config) {\n    const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n    for (const dataAttribute of Object.keys(dataAttributes)) {\n      if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n        delete dataAttributes[dataAttribute]\n      }\n    }\n\n    config = {\n      ...dataAttributes,\n      ...(typeof config === 'object' && config ? config : {})\n    }\n    config = this._mergeConfigObj(config)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  _configAfterMerge(config) {\n    config.container = config.container === false ? document.body : getElement(config.container)\n\n    if (typeof config.delay === 'number') {\n      config.delay = {\n        show: config.delay,\n        hide: config.delay\n      }\n    }\n\n    if (typeof config.title === 'number') {\n      config.title = config.title.toString()\n    }\n\n    if (typeof config.content === 'number') {\n      config.content = config.content.toString()\n    }\n\n    return config\n  }\n\n  _getDelegateConfig() {\n    const config = {}\n\n    for (const [key, value] of Object.entries(this._config)) {\n      if (this.constructor.Default[key] !== value) {\n        config[key] = value\n      }\n    }\n\n    config.selector = false\n    config.trigger = 'manual'\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  _disposePopper() {\n    if (this._popper) {\n      this._popper.destroy()\n      this._popper = null\n    }\n\n    if (this.tip) {\n      this.tip.remove()\n      this.tip = null\n    }\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Tooltip.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 * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index.js'\nimport Tooltip from './tooltip.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n  ...Tooltip.Default,\n  content: '',\n  offset: [0, 8],\n  placement: 'right',\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  trigger: 'click'\n}\n\nconst DefaultType = {\n  ...Tooltip.DefaultType,\n  content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n  // Getters\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  // Overrides\n  _isWithContent() {\n    return this._getTitle() || this._getContent()\n  }\n\n  // Private\n  _getContentForTemplate() {\n    return {\n      [SELECTOR_TITLE]: this._getTitle(),\n      [SELECTOR_CONTENT]: this._getContent()\n    }\n  }\n\n  _getContent() {\n    return this._resolvePossibleFunction(this._config.content)\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Popover.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 * jQuery\n */\n\ndefineJQueryPlugin(Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${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_TARGET_LINKS = '[href]'\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_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n  offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n  rootMargin: '0px 0px -25%',\n  smoothScroll: false,\n  target: null,\n  threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n  offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\n  rootMargin: 'string',\n  smoothScroll: 'boolean',\n  target: 'element',\n  threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    // this._element is the observablesContainer and config.target the menu links wrapper\n    this._targetLinks = new Map()\n    this._observableSections = new Map()\n    this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n    this._activeTarget = null\n    this._observer = null\n    this._previousScrollData = {\n      visibleEntryTop: 0,\n      parentScrollTop: 0\n    }\n    this.refresh() // initialize\n  }\n\n  // Getters\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  refresh() {\n    this._initializeTargetsAndObservables()\n    this._maybeEnableSmoothScroll()\n\n    if (this._observer) {\n      this._observer.disconnect()\n    } else {\n      this._observer = this._getNewObserver()\n    }\n\n    for (const section of this._observableSections.values()) {\n      this._observer.observe(section)\n    }\n  }\n\n  dispose() {\n    this._observer.disconnect()\n    super.dispose()\n  }\n\n  // Private\n  _configAfterMerge(config) {\n    // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n    config.target = getElement(config.target) || document.body\n\n    // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n    config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin\n\n    if (typeof config.threshold === 'string') {\n      config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n    }\n\n    return config\n  }\n\n  _maybeEnableSmoothScroll() {\n    if (!this._config.smoothScroll) {\n      return\n    }\n\n    // unregister any previous listeners\n    EventHandler.off(this._config.target, EVENT_CLICK)\n\n    EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n      const observableSection = this._observableSections.get(event.target.hash)\n      if (observableSection) {\n        event.preventDefault()\n        const root = this._rootElement || window\n        const height = observableSection.offsetTop - this._element.offsetTop\n        if (root.scrollTo) {\n          root.scrollTo({ top: height, behavior: 'smooth' })\n          return\n        }\n\n        // Chrome 60 doesn't support `scrollTo`\n        root.scrollTop = height\n      }\n    })\n  }\n\n  _getNewObserver() {\n    const options = {\n      root: this._rootElement,\n      threshold: this._config.threshold,\n      rootMargin: this._config.rootMargin\n    }\n\n    return new IntersectionObserver(entries => this._observerCallback(entries), options)\n  }\n\n  // The logic of selection\n  _observerCallback(entries) {\n    const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n    const activate = entry => {\n      this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n      this._process(targetElement(entry))\n    }\n\n    const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n    const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n    this._previousScrollData.parentScrollTop = parentScrollTop\n\n    for (const entry of entries) {\n      if (!entry.isIntersecting) {\n        this._activeTarget = null\n        this._clearActiveClass(targetElement(entry))\n\n        continue\n      }\n\n      const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n      // if we are scrolling down, pick the bigger offsetTop\n      if (userScrollsDown && entryIsLowerThanPrevious) {\n        activate(entry)\n        // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n        if (!parentScrollTop) {\n          return\n        }\n\n        continue\n      }\n\n      // if we are scrolling up, pick the smallest offsetTop\n      if (!userScrollsDown && !entryIsLowerThanPrevious) {\n        activate(entry)\n      }\n    }\n  }\n\n  _initializeTargetsAndObservables() {\n    this._targetLinks = new Map()\n    this._observableSections = new Map()\n\n    const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n    for (const anchor of targetLinks) {\n      // ensure that the anchor has an id and is not disabled\n      if (!anchor.hash || isDisabled(anchor)) {\n        continue\n      }\n\n      const observableSection = SelectorEngine.findOne(anchor.hash, this._element)\n\n      // ensure that the observableSection exists & is visible\n      if (isVisible(observableSection)) {\n        this._targetLinks.set(anchor.hash, anchor)\n        this._observableSections.set(anchor.hash, observableSection)\n      }\n    }\n  }\n\n  _process(target) {\n    if (this._activeTarget === target) {\n      return\n    }\n\n    this._clearActiveClass(this._config.target)\n    this._activeTarget = target\n    target.classList.add(CLASS_NAME_ACTIVE)\n    this._activateParents(target)\n\n    EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n  }\n\n  _activateParents(target) {\n    // Activate dropdown parents\n    if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n      SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\n        .classList.add(CLASS_NAME_ACTIVE)\n      return\n    }\n\n    for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\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      for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {\n        item.classList.add(CLASS_NAME_ACTIVE)\n      }\n    }\n  }\n\n  _clearActiveClass(parent) {\n    parent.classList.remove(CLASS_NAME_ACTIVE)\n\n    const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent)\n    for (const node of activeNodes) {\n      node.classList.remove(CLASS_NAME_ACTIVE)\n    }\n  }\n\n  // Static\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 (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n    ScrollSpy.getOrCreateInstance(spy)\n  }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getNextActiveElement, isDisabled } from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport BaseComponent from './base-component.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_DROPDOWN = 'dropdown'\n\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]' // todo:v6: could be only `tab`\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n  constructor(element) {\n    super(element)\n    this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n    if (!this._parent) {\n      return\n      // todo: should Throw exception on v6\n      // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n    }\n\n    // Set up initial aria attributes\n    this._setInitialAttributes(this._parent, this._getChildren())\n\n    EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n  }\n\n  // Getters\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  show() { // Shows this elem and deactivate the active sibling if exists\n    const innerElem = this._element\n    if (this._elemIsActive(innerElem)) {\n      return\n    }\n\n    // Search for active tab on same parent to deactivate it\n    const active = this._getActiveElem()\n\n    const hideEvent = active ?\n      EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n      null\n\n    const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n    if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n      return\n    }\n\n    this._deactivate(active, innerElem)\n    this._activate(innerElem, active)\n  }\n\n  // Private\n  _activate(element, relatedElem) {\n    if (!element) {\n      return\n    }\n\n    element.classList.add(CLASS_NAME_ACTIVE)\n\n    this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n    const complete = () => {\n      if (element.getAttribute('role') !== 'tab') {\n        element.classList.add(CLASS_NAME_SHOW)\n        return\n      }\n\n      element.removeAttribute('tabindex')\n      element.setAttribute('aria-selected', true)\n      this._toggleDropDown(element, true)\n      EventHandler.trigger(element, EVENT_SHOWN, {\n        relatedTarget: relatedElem\n      })\n    }\n\n    this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n  }\n\n  _deactivate(element, relatedElem) {\n    if (!element) {\n      return\n    }\n\n    element.classList.remove(CLASS_NAME_ACTIVE)\n    element.blur()\n\n    this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n    const complete = () => {\n      if (element.getAttribute('role') !== 'tab') {\n        element.classList.remove(CLASS_NAME_SHOW)\n        return\n      }\n\n      element.setAttribute('aria-selected', false)\n      element.setAttribute('tabindex', '-1')\n      this._toggleDropDown(element, false)\n      EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n    }\n\n    this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n  }\n\n  _keydown(event) {\n    if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key))) {\n      return\n    }\n\n    event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n    event.preventDefault()\n    const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n    const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true)\n\n    if (nextActiveElement) {\n      nextActiveElement.focus({ preventScroll: true })\n      Tab.getOrCreateInstance(nextActiveElement).show()\n    }\n  }\n\n  _getChildren() { // collection of inner elements\n    return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n  }\n\n  _getActiveElem() {\n    return this._getChildren().find(child => this._elemIsActive(child)) || null\n  }\n\n  _setInitialAttributes(parent, children) {\n    this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n    for (const child of children) {\n      this._setInitialAttributesOnChild(child)\n    }\n  }\n\n  _setInitialAttributesOnChild(child) {\n    child = this._getInnerElement(child)\n    const isActive = this._elemIsActive(child)\n    const outerElem = this._getOuterElement(child)\n    child.setAttribute('aria-selected', isActive)\n\n    if (outerElem !== child) {\n      this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n    }\n\n    if (!isActive) {\n      child.setAttribute('tabindex', '-1')\n    }\n\n    this._setAttributeIfNotExists(child, 'role', 'tab')\n\n    // set attributes to the related panel too\n    this._setInitialAttributesOnTargetPanel(child)\n  }\n\n  _setInitialAttributesOnTargetPanel(child) {\n    const target = SelectorEngine.getElementFromSelector(child)\n\n    if (!target) {\n      return\n    }\n\n    this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n    if (child.id) {\n      this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`)\n    }\n  }\n\n  _toggleDropDown(element, open) {\n    const outerElem = this._getOuterElement(element)\n    if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n      return\n    }\n\n    const toggle = (selector, className) => {\n      const element = SelectorEngine.findOne(selector, outerElem)\n      if (element) {\n        element.classList.toggle(className, open)\n      }\n    }\n\n    toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\n    toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\n    outerElem.setAttribute('aria-expanded', open)\n  }\n\n  _setAttributeIfNotExists(element, attribute, value) {\n    if (!element.hasAttribute(attribute)) {\n      element.setAttribute(attribute, value)\n    }\n  }\n\n  _elemIsActive(elem) {\n    return elem.classList.contains(CLASS_NAME_ACTIVE)\n  }\n\n  // Try to get the inner element (usually the .nav-link)\n  _getInnerElement(elem) {\n    return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n  }\n\n  // Try to get the outer element (usually the .nav-item)\n  _getOuterElement(elem) {\n    return elem.closest(SELECTOR_OUTER) || elem\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Tab.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]()\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_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  Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n  for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n    Tab.getOrCreateInstance(element)\n  }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, reflow } from './util/index.js'\nimport EventHandler from './dom/event-handler.js'\nimport BaseComponent from './base-component.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\n\n/**\n * Constants\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: true,\n  autohide: true,\n  delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n  constructor(element, config) {\n    super(element, config)\n\n    this._timeout = null\n    this._hasMouseInteraction = false\n    this._hasKeyboardInteraction = false\n    this._setListeners()\n  }\n\n  // Getters\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  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.classList.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, CLASS_NAME_SHOWING)\n\n    this._queueCallback(complete, this._element, this._config.animation)\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    const complete = () => {\n      this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n      this._element.classList.remove(CLASS_NAME_SHOWING, 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._element, this._config.animation)\n  }\n\n  dispose() {\n    this._clearTimeout()\n\n    if (this.isShown()) {\n      this._element.classList.remove(CLASS_NAME_SHOW)\n    }\n\n    super.dispose()\n  }\n\n  isShown() {\n    return this._element.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  // Private\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      }\n\n      case 'focusin':\n      case 'focusout': {\n        this._hasKeyboardInteraction = isInteracting\n        break\n      }\n\n      default: {\n        break\n      }\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  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Toast.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](this)\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Toast)\n\nexport default Toast\n"],"mappings":"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"}