{"version":3,"file":"vendor-node_modules_bootstrap_dist_js_bootstrap_esm_js.min.js?v=6d2410728840d76f6d07","mappings":"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","sources":["webpack://ui-toolkit/../../js/src/dom/data.js","webpack://ui-toolkit/../../js/src/util/index.js","webpack://ui-toolkit/../../js/src/dom/event-handler.js","webpack://ui-toolkit/../../js/src/dom/manipulator.js","webpack://ui-toolkit/../../js/src/util/config.js","webpack://ui-toolkit/../../js/src/base-component.js","webpack://ui-toolkit/../../js/src/dom/selector-engine.js","webpack://ui-toolkit/../../js/src/util/component-functions.js","webpack://ui-toolkit/../../js/src/alert.js","webpack://ui-toolkit/../../js/src/button.js","webpack://ui-toolkit/../../js/src/util/swipe.js","webpack://ui-toolkit/../../js/src/carousel.js","webpack://ui-toolkit/../../js/src/collapse.js","webpack://ui-toolkit/../../js/src/dropdown.js","webpack://ui-toolkit/../../js/src/util/backdrop.js","webpack://ui-toolkit/../../js/src/util/focustrap.js","webpack://ui-toolkit/../../js/src/util/scrollbar.js","webpack://ui-toolkit/../../js/src/modal.js","webpack://ui-toolkit/../../js/src/offcanvas.js","webpack://ui-toolkit/../../js/src/util/sanitizer.js","webpack://ui-toolkit/../../js/src/util/template-factory.js","webpack://ui-toolkit/../../js/src/tooltip.js","webpack://ui-toolkit/../../js/src/popover.js","webpack://ui-toolkit/../../js/src/scrollspy.js","webpack://ui-toolkit/../../js/src/tab.js","webpack://ui-toolkit/../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap 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 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 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 const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), 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 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 util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.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 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 EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3'\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 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 selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\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 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 SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.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 alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { defineJQueryPlugin } from './util/index.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 button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { defineJQueryPlugin } from './util/index.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 util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.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 carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.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 collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n getElement,\n reflow\n} from './util/index.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 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 dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.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 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 Config from './config.js'\nimport {\n execute, executeAfterTransition, getElement, reflow\n} from './index.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 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 util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport SelectorEngine from '../dom/selector-engine.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 modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport FocusTrap from './util/focustrap.js'\nimport {\n defineJQueryPlugin, isRTL, isVisible, reflow\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.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 EventHandler.off(window, EVENT_KEY)\n EventHandler.off(this._dialog, EVENT_KEY)\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n\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 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 offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport FocusTrap from './util/focustrap.js'\nimport {\n defineJQueryPlugin,\n isDisabled,\n isVisible\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.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 this.hide()\n return\n }\n\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\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 util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\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 dd: [],\n div: [],\n dl: [],\n dt: [],\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// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/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))\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 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 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 util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.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: '
'\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 tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.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, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' +\n '
' +\n '
' +\n '
',\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 in v6\n if (!tip) {\n return null\n }\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n // TODO: 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 popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport { defineJQueryPlugin } from './util/index.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: '
' +\n '
' +\n '

' +\n '
' +\n '
',\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 scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin, getElement, isDisabled, isVisible\n} from './util/index.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(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(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