{"version":3,"file":"js/603-687520007beb2585d108.js","mappings":"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","sources":["webpack://reglab/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://reglab/./node_modules/@popperjs/core/lib/popper.js","webpack://reglab/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://reglab/./node_modules/bootstrap/dist/js/bootstrap.esm.js"],"sourcesContent":["import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.2.3 (https://getbootstrap.com/)\n * Copyright 2011-2022 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 (v5.2.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n/**\n * Public Util API\n */\n\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n};\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href'); // 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\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n\n return selector;\n};\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n};\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n};\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n\n return typeof object.nodeType !== 'undefined';\n};\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(object);\n }\n\n return null;\n};\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed\n\n const closedDetails = element.closest('details:not([open])');\n\n if (!closedDetails) {\n return elementIsVisible;\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n\n if (summary === null) {\n return false;\n }\n }\n\n return elementIsVisible;\n};\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n};\n\nconst noop = () => {};\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 */\n\n\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n\n return null;\n};\n\nconst DOMContentLoadedCallbacks = [];\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\n\nconst isRTL = () => document.documentElement.dir === 'rtl';\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\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\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n};\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n/**\n * 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 */\n\n\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement); // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\n\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 * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n\n hydrateObj(event, {\n delegateTarget: target\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n };\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check\n\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n\n return [isDelegated, callable, typeEvent];\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // 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\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n callable = wrapFunction(callable);\n }\n\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\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}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n\n for (const handlerKey of Object.keys(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n\n for (const keyHandlers of Object.keys(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n let evt = new Event(event, {\n bubbles,\n cancelable: true\n });\n evt = hydrateObj(evt, args);\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n\n};\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\n get() {\n return value;\n }\n\n });\n }\n }\n\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\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\n const instanceMap = elementMap.get(element); // 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\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n\n instanceMap.set(key, instance);\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n\n if (value === 'false') {\n return false;\n }\n\n if (value === Number(value).toString()) {\n return Number(value);\n }\n\n if (value === '' || value === 'null') {\n return null;\n }\n\n if (typeof value !== 'string') {\n return value;\n }\n\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n\n return attributes;\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n\n static get DefaultType() {\n return {};\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n return config;\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return { ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const property of Object.keys(configTypes)) {\n const expectedTypes = configTypes[property];\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst VERSION = '5.2.3';\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n } // Public\n\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n } // Static\n\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n\n static get VERSION() {\n return VERSION;\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): 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\n if (isDisabled(this)) {\n return;\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n } // Public\n\n\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n if (closeEvent.defaultPrevented) {\n return;\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n } // Private\n\n\n _destroyElement() {\n this._element.remove();\n\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nenableDismissTrigger(Alert, 'close');\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n } // Public\n\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\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 * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n\n return parents;\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n\n focusableChildren(element) {\n const focusables = ['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\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n\n if (!element || !Swipe.isSupported()) {\n return;\n }\n\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n\n this._initEvents();\n } // Getters\n\n\n static get Default() {\n return Default$c;\n }\n\n static get DefaultType() {\n return DefaultType$c;\n }\n\n static get NAME() {\n return NAME$d;\n } // Public\n\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n } // Private\n\n\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n\n this._handleSwipe();\n\n execute(this._config.endCallback);\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n\n if (!direction) {\n return;\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n } // Static\n\n\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * 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\n this._addEventListeners();\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$b;\n }\n\n static get DefaultType() {\n return DefaultType$b;\n }\n\n static get NAME() {\n return NAME$c;\n } // Public\n\n\n next() {\n this._slide(ORDER_NEXT);\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n\n prev() {\n this._slide(ORDER_PREV);\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n\n this._clearInterval();\n }\n\n cycle() {\n this._clearInterval();\n\n this._updateInterval();\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n\n this.cycle();\n }\n\n to(index) {\n const items = this._getItems();\n\n if (index > items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n\n const activeIndex = this._getItemIndex(this._getActive());\n\n if (activeIndex === index) {\n return;\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, items[index]);\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n\n super.dispose();\n } // Private\n\n\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\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\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n } // 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\n this.pause();\n\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n const direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(this._directionToOrder(direction));\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n 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\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n\n if (!element) {\n return;\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n\n const activeElement = this._getActive();\n\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n\n if (nextElement === activeElement) {\n return;\n }\n\n const nextElementIndex = this._getItemIndex(nextElement);\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n\n const slideEvent = triggerEvent(EVENT_SLIDE);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // todo: change tests that use empty divs to avoid this check\n return;\n }\n\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n\n this._setActiveIndicatorElement(nextElementIndex);\n\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\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\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n\n if (isCycling) {\n this.cycle();\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n carousel.to(slideIndex);\n\n carousel._maybeEnableCycle();\n\n return;\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n\n carousel._maybeEnableCycle();\n\n return;\n }\n\n carousel.prev();\n\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * 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\n for (const elem of toggleList) {\n const selector = getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$a;\n }\n\n static get DefaultType() {\n return DefaultType$a;\n }\n\n static get NAME() {\n return NAME$b;\n } // Public\n\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let activeChildren = []; // find active children\n\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\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n for (const trigger of this._triggerArray) {\n const element = getElementFromSelector(trigger);\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n } // Private\n\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = getElement(config.parent);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n\n for (const element of children) {\n const selected = getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth\n\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n } // Static\n\n\n static jQueryInterface(config) {\n const _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\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\n const selector = getSelectorFromElement(this);\n const selectorElements = SelectorEngine.find(selector);\n\n for (const element of selectorElements) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * 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.2/forms/input-group/\n\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 } // Getters\n\n\n static get Default() {\n return Default$9;\n }\n\n static get DefaultType() {\n return DefaultType$9;\n }\n\n static get NAME() {\n return NAME$a;\n } // Public\n\n\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._createPopper(); // 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\n\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n this._element.classList.add(CLASS_NAME_SHOW$6);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n super.dispose();\n }\n\n update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n\n _getConfig(config) {\n config = super._getConfig(config);\n\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\n return config;\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n let referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n const popperConfig = this._getPopperConfig();\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n\n _getPlacement() {\n const parentDropdown = this._parent;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n } // We need to trim the value because custom properties can also include spaces\n\n\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display or Dropdown is in Navbar\n\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove\n\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n\n if (!items.length) {\n return;\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\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\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\n const relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n\n context._completeHide(relatedTarget);\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n 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\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n\n if (isInput && !isEscapeEvent) {\n return;\n }\n\n event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/\n\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\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n\n instance._selectMenuItem(event);\n\n return;\n }\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\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 * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n } // Public\n\n\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n\n hide() {\n const width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n\n isOverflowing() {\n return this.getWidth() > 0;\n } // Private\n\n\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n this._saveInitialAttribute(element, styleProperty);\n\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty); // We only want to remove the property if the value is `null`; the value can also be zero\n\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * 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 } // Getters\n\n\n static get Default() {\n return Default$8;\n }\n\n static get DefaultType() {\n return DefaultType$8;\n }\n\n static get NAME() {\n return NAME$9;\n } // Public\n\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n const element = this._getElement();\n\n if (this._config.isAnimated) {\n reflow(element);\n }\n\n element.classList.add(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n\n dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n } // Private\n\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n\n _append() {\n if (this._isAppended) {\n return;\n }\n\n const element = this._getElement();\n\n this._config.rootElement.append(element);\n\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * 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 } // Getters\n\n\n static get Default() {\n return Default$7;\n }\n\n static get DefaultType() {\n return DefaultType$7;\n }\n\n static get NAME() {\n return NAME$8;\n } // Public\n\n\n activate() {\n if (this._isActive) {\n return;\n }\n\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n\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\n deactivate() {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n } // Private\n\n\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement);\n\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * 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\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$6;\n }\n\n static get DefaultType() {\n return DefaultType$6;\n }\n\n static get NAME() {\n return NAME$7;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._isTransitioning = true;\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n this._isTransitioning = true;\n\n this._focustrap.deactivate();\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n\n dispose() {\n for (const htmlElement of [window, this._dialog]) {\n EventHandler.off(htmlElement, EVENT_KEY$4);\n }\n\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n }\n\n handleUpdate() {\n this._adjustDialog();\n } // Private\n\n\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\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n\n if (this._config.keyboard) {\n event.preventDefault();\n this.hide();\n return;\n }\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\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n\n return;\n }\n\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n this._resetAdjustments();\n\n this._scrollBar.reset();\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed\n\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n\n this._element.focus();\n }\n /**\n * The following methods are used to handle overflowing modals\n */\n\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n const scrollbarWidth = this._scrollBar.getWidth();\n\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](relatedTarget);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n }); // avoid conflict when clicking modal toggler while another one is open\n\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * 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\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$5;\n }\n\n static get DefaultType() {\n return DefaultType$5;\n }\n\n static get NAME() {\n return NAME$6;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$3);\n\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n\n hide() {\n if (!this._isShown) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.add(CLASS_NAME_HIDING);\n\n this._backdrop.hide();\n\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n\n dispose() {\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n } // Private\n\n\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n\n this.hide();\n }; // 'static' option will be translated to true, and booleans will keep their value\n\n\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\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n\n if (!this._config.keyboard) {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n\n this.hide();\n });\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * Data API implementation\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\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 * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));\n }\n\n return true;\n } // Check if a regular expression validates the attribute.\n\n\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\n\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};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n } // Getters\n\n\n static get Default() {\n return Default$4;\n }\n\n static get DefaultType() {\n return DefaultType$4;\n }\n\n static get NAME() {\n return NAME$5;\n } // Public\n\n\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n\n hasContent() {\n return this.getContent().length > 0;\n }\n\n changeContent(content) {\n this._checkContent(content);\n\n this._config.content = { ...this._config.content,\n ...content\n };\n return this;\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n\n const template = templateWrapper.children[0];\n\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n\n return template;\n } // Private\n\n\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n\n this._checkContent(config.content);\n }\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\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n\n if (!templateElement) {\n return;\n }\n\n content = this._resolvePossibleFunction(content);\n\n if (!content) {\n templateElement.remove();\n return;\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n\n return;\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n\n templateElement.textContent = content;\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n\n _resolvePossibleFunction(arg) {\n return typeof arg === 'function' ? arg(this) : arg;\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n\n templateElement.textContent = element.textContent;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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, 0],\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 * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n super(element, config); // Private\n\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; // Protected\n\n this.tip = null;\n\n this._setListeners();\n\n if (!this._config.selector) {\n this._fixTitle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$3;\n }\n\n static get DefaultType() {\n return DefaultType$3;\n }\n\n static get NAME() {\n return NAME$4;\n } // Public\n\n\n enable() {\n this._isEnabled = true;\n }\n\n disable() {\n this._isEnabled = false;\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n\n this._activeTrigger.click = !this._activeTrigger.click;\n\n if (this._isShown()) {\n this._leave();\n\n return;\n }\n\n this._enter();\n }\n\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n\n this._disposePopper();\n\n super.dispose();\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n } // todo v6 remove this OR make it optional\n\n\n this._disposePopper();\n\n const tip = this._getTipElement();\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n\n const {\n container\n } = this._config;\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2); // 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\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n\n if (this._isHovered === false) {\n this._leave();\n }\n\n this._isHovered = false;\n };\n\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n\n hide() {\n if (!this._isShown()) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const tip = this._getTipElement();\n\n tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n if (!this._isHovered) {\n this._disposePopper();\n }\n\n this._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n\n update() {\n if (this._popper) {\n this._popper.update();\n }\n } // Protected\n\n\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n\n return this.tip;\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml(); // todo: remove this check on v6\n\n\n if (!tip) {\n return null;\n }\n\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); // todo: on v6 the following can be achieved with CSS only\n\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n\n return tip;\n }\n\n setContent(content) {\n this._newContent = content;\n\n if (this._isShown()) {\n this._disposePopper();\n\n this.show();\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({ ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n\n return this._templateFactory;\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n } // Private\n\n\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n\n _createPopper(tip) {\n const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _resolvePossibleFunction(arg) {\n return typeof arg === 'function' ? arg.call(this._element) : arg;\n }\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 { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\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\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n\n context._leave();\n });\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title');\n\n if (!title) {\n return;\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n\n\n this._element.removeAttribute('title');\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n\n this._isHovered = true;\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n this._isHovered = false;\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n\n config = { ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n return config;\n }\n\n _getDelegateConfig() {\n const config = {};\n\n for (const key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n }\n\n config.selector = false;\n config.trigger = 'manual'; // 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\n return config;\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = { ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = { ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n\n static get DefaultType() {\n return DefaultType$2;\n }\n\n static get NAME() {\n return NAME$3;\n } // Overrides\n\n\n _isWithContent() {\n return this._getTitle() || this._getContent();\n } // Private\n\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * jQuery\n */\n\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\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 * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper\n\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 } // Getters\n\n\n static get Default() {\n return Default$1;\n }\n\n static get DefaultType() {\n return DefaultType$1;\n }\n\n static get NAME() {\n return NAME$2;\n } // Public\n\n\n refresh() {\n this._initializeTargetsAndObservables();\n\n this._maybeEnableSmoothScroll();\n\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n\n dispose() {\n this._observer.disconnect();\n\n super.dispose();\n } // Private\n\n\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; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n\n return config;\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n } // unregister any previous listeners\n\n\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\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n } // Chrome 60 doesn't support `scrollTo`\n\n\n root.scrollTop = height;\n }\n });\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n } // The logic of selection\n\n\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n\n this._process(targetElement(entry));\n };\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n\n this._clearActiveClass(targetElement(entry));\n\n continue;\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop\n\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n\n if (!parentScrollTop) {\n return;\n }\n\n continue;\n } // if we are scrolling up, pick the smallest offsetTop\n\n\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\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\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n\n const observableSection = SelectorEngine.findOne(anchor.hash, this._element); // ensure that the observableSection exists & is visible\n\n if (isVisible(observableSection)) {\n this._targetLinks.set(anchor.hash, anchor);\n\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n\n this._clearActiveClass(this._config.target);\n\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n\n this._activateParents(target);\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\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\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both