IP_Malafeev_KrutieLabi/lab3/node_modules/.vite/deps/bootstrap.js.map

8 lines
236 KiB
Plaintext

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