{"version":3,"file":"7965.82cac63be801fe141aaa.js","mappings":"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","sources":["webpack://ssp-dthermx/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/dom/data.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/index.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/dom/event-handler.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/dom/manipulator.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/config.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/base-component.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/dom/selector-engine.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/component-functions.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/alert.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/button.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/swipe.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/carousel.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/collapse.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/dropdown.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/backdrop.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/focustrap.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/scrollbar.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/modal.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/offcanvas.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/sanitizer.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/util/template-factory.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/tooltip.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/popover.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/scrollspy.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/tab.js","webpack://ssp-dthermx/./node_modules/bootstrap/js/src/toast.js"],"sourcesContent":["import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/**\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.2'\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 !== '#' ? parseSelector(hrefAttribute.trim()) : null\n }\n\n return selector\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap 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 { execute, executeAfterTransition, getElement, reflow } 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 { defineJQueryPlugin, isRTL, isVisible, reflow } 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 div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// 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 { defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop } 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 { defineJQueryPlugin, getElement, isDisabled, isVisible } 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