{"version":3,"file":"js/9909-5d53b001b52958bc0f13.js","mappings":"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","sources":["webpack://app/./node_modules/bootstrap/dist/js/bootstrap.esm.js"],"sourcesContent":["/*!\n * Bootstrap v5.3.2 (https://getbootstrap.com/)\n * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\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();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\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 instanceMap.set(key, instance);\n },\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n const instanceMap = elementMap.get(element);\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 * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend';\n\n/**\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 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 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 return prefix;\n};\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n 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 return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\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 if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n};\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\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 if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n};\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\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 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 return findShadowRoot(element.parentNode);\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 return null;\n};\nconst DOMContentLoadedCallbacks = [];\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 DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\nconst isRTL = () => document.documentElement.dir === 'rtl';\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};\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\n};\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\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 index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\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};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n}\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n }\n };\n}\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\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 if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n}\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\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 callable = wrapFunction(callable);\n }\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\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}\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}\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\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 if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n const evt = hydrateObj(new Event(event, {\n bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n};\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value;\n }\n });\n }\n }\n return obj;\n}\n\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 if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\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 return attributes;\n },\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n static get DefaultType() {\n return {};\n }\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n return config;\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 _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 if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\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 element = getElement(element);\n if (!element) {\n return;\n }\n this._element = element;\n this._config = this._getConfig(config);\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 for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\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 static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n static get VERSION() {\n return VERSION;\n }\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\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 selector = hrefAttribute && hrefAttribute !== '#' ? parseSelector(hrefAttribute.trim()) : null;\n }\n return selector;\n};\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev(element, selector) {\n let previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\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 while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n },\n getSelectorFromElement(element) {\n const selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\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\n/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n if (closeEvent.defaultPrevented) {\n return;\n }\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\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 if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\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\n/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\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$3));\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\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$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\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 if (!element || !Swipe.isSupported()) {\n return;\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$c;\n }\n static get DefaultType() {\n return DefaultType$c;\n }\n static get NAME() {\n return NAME$d;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\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 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 _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\n/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = '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';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst 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\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // 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 this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$b;\n }\n static get DefaultType() {\n return DefaultType$b;\n }\n static get NAME() {\n return NAME$c;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\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 prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\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 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 this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\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 this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\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 if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\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 const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\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 const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\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 if (typeof config === 'number') {\n data.to(config);\n return;\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 data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = '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';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\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 this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$a;\n }\n static get DefaultType() {\n return DefaultType$a;\n }\n static get NAME() {\n return NAME$b;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\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$6);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\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 _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\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 _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\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 return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, 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 for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = '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';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\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)';\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';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\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 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] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n }\n\n // Getters\n static get Default() {\n return Default$9;\n }\n static get DefaultType() {\n return DefaultType$9;\n }\n static get NAME() {\n return NAME$a;\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n if (showEvent.defaultPrevented) {\n return;\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 this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n this._element.classList.add(CLASS_NAME_SHOW$6);\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n this._completeHide(relatedTarget);\n }\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n super.dispose();\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$5, 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 if (this._popper) {\n this._popper.destroy();\n }\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n _getConfig(config) {\n config = super._getConfig(config);\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n return config;\n }\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n let referenceElement = this._element;\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 const popperConfig = this._getPopperConfig();\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n _getPlacement() {\n const parentDropdown = this._parent;\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\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 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\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 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 return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\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$1, !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 if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\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$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n const relatedTarget = {\n relatedTarget: context._element\n };\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n context._completeHide(relatedTarget);\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$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n if (isInput && !isEscapeEvent) {\n return;\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$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n instance._selectMenuItem(event);\n return;\n }\n if (instance._isShown()) {\n // 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$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // 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$8 = {\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$8;\n }\n static get DefaultType() {\n return DefaultType$8;\n }\n static get NAME() {\n return NAME$9;\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._append();\n const element = this._getElement();\n if (this._config.isAnimated) {\n reflow(element);\n }\n element.classList.add(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n dispose() {\n if (!this._isAppended) {\n return;\n }\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\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$4);\n }\n this._element = backdrop;\n }\n return this._element;\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 _append() {\n if (this._isAppended) {\n return;\n }\n const element = this._getElement();\n this._config.rootElement.append(element);\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n};\n\nconst DefaultType$7 = {\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$7;\n }\n static get DefaultType() {\n return DefaultType$7;\n }\n static get NAME() {\n return NAME$8;\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return;\n }\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n deactivate() {\n if (!this._isActive) {\n return;\n }\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n }\n\n // Private\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n const elements = SelectorEngine.focusableChildren(trapElement);\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 _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\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 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 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 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 _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 this._saveInitialAttribute(element, styleProperty);\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\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 Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\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 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 this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$6;\n }\n static get DefaultType() {\n return DefaultType$6;\n }\n static get NAME() {\n return NAME$7;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._isTransitioning = true;\n this._scrollBar.hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n this._adjustDialog();\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._isShown = false;\n this._isTransitioning = true;\n this._focustrap.deactivate();\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n dispose() {\n EventHandler.off(window, EVENT_KEY$4);\n EventHandler.off(this._dialog, EVENT_KEY$4);\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\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 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 const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW$4);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\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 if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n return;\n }\n if (this._config.backdrop) {\n this.hide();\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 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$4);\n });\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n if (hideEvent.defaultPrevented) {\n return;\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 if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\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 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 if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\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 if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\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$1);\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\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 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$5;\n }\n static get DefaultType() {\n return DefaultType$5;\n }\n static get NAME() {\n return NAME$6;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._backdrop.show();\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n this._element.classList.add(CLASS_NAME_SHOW$3);\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n this._queueCallback(completeCallBack, this._element, true);\n }\n hide() {\n if (!this._isShown) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n if (hideEvent.defaultPrevented) {\n return;\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 const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n this._queueCallback(completeCallback, this._element, true);\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 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 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 _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\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 if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\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 const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\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});\nenableDismissTrigger(Offcanvas);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\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;\nconst 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(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\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;\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\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$4;\n }\n static get DefaultType() {\n return DefaultType$4;\n }\n static get NAME() {\n return NAME$5;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\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 title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\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 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 this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$3;\n }\n static get DefaultType() {\n return DefaultType$3;\n }\n static get NAME() {\n return NAME$4;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\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 this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2);\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 const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW$2);\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 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 if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\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 _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\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 tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\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 return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\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 _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\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 _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\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 return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), 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 ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\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] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\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 _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\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 _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\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 _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\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 if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = {\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$2;\n }\n static get DefaultType() {\n return DefaultType$2;\n }\n static get NAME() {\n return NAME$3;\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 _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 if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\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$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // 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};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // 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$1;\n }\n static get DefaultType() {\n return DefaultType$1;\n }\n static get NAME() {\n return NAME$2;\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables();\n this._maybeEnableSmoothScroll();\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\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 if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n return config;\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 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({\n top: height,\n behavior: 'smooth'\n });\n return;\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height;\n }\n });\n }\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\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 const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n this._clearActiveClass(targetElement(entry));\n continue;\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 continue;\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\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 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 _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n this._clearActiveClass(this._config.target);\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n this._activateParents(target);\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n 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$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both